home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / inter51c.zip / INTERRUP.L < prev    next >
Text File  |  1996-07-28  |  330KB  |  9,104 lines

  1. Interrupt List, part 12 of 15
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. --------h-4B---------------------------------
  4. INT 4B - Z100 - Slave 8259 - S100 vectored line 3
  5. SeeAlso: INT 4A"Z100",INT 4C"Z100"
  6. --------b-4B---------------------------------
  7. INT 4B - TI Professional PC - PARALLEL PORT DEVICE SERVICE ROUTINE
  8.     no details available
  9. SeeAlso: INT 40"TI Professional",INT 48"TI Professional"
  10. SeeAlso: INT 49"TI Professional",INT 4C"TI Professional",INT 4D/AH=00h
  11. --------d-4B---------------------------------
  12. INT 4B - Common Access Method SCSI interface (draft revision 1.9)
  13.     ES:DI -> CAM Control Block (see #2411 at INT 4F/AX=8100h)
  14. Notes:    the CAM committee moved the interface to INT 4F after revision 1.9
  15.       to avoid conflicting with the IBM SCSI interface and the Virtual
  16.       DMA specification
  17.     the installation check for the driver is the string "SCSI_CAM" eight
  18.       bytes past the INT 4Bh handler
  19.     the only driver to date reported to use the CAM interface on INT 4B
  20.       instead of INT 4F is from Future Domain (which has drivers for CAM
  21.       on either interrupt)
  22. SeeAlso: INT 4F/AX=8100h
  23. Index:    installation check;Common Access Method SCSI interface
  24. --------b-4B---------------------------------
  25. INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION
  26. Return: AX = BIOS equipment list word (see #2399)
  27. Note:    this interrupt is identical to INT 11 on the Tandy 2000
  28. SeeAlso: INT 11"EQUIPMENT",INT 4A"Tandy 2000",INT 4C"Tandy 2000"
  29.  
  30. Bitfields for Tandy 2000 BIOS equipment list:
  31. Bit(s)    Description    (Table 2399)
  32.  0    reserved
  33.  1    monochrome graphics installed
  34.  2    graphics with color option installed
  35.  3    floppy disk drive 1 installed
  36.  4    floppy disk drive 2 installed
  37.  5    hard disk drive 1 installed
  38.  6    hard disk drive 2 installed
  39.  7    unused
  40.  8    black and white monitor
  41.  9    color monitor
  42.  12-10    reserved
  43.  13    printer installed
  44.  14    reserved
  45.  15    unused
  46. SeeAlso: #0134 at INT 11
  47. --------O-4B---------------------------------
  48. INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS
  49.     AL = function code
  50.     BL = first parameter
  51.     BH = second parameter (if needed)
  52. Return: BL = first return parameter
  53.     BH = second return parameter
  54.     CF depends on function
  55. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4C"Acorn"
  56. --------d-4B80-------------------------------
  57. INT 4B - IBM SCSI interface
  58.     AH = 80h
  59.     AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS)
  60.     further details not yet available
  61. --------d-4B8102DX0000-----------------------
  62. INT 4B - Virtual DMA Specification (VDS) - GET VERSION
  63.     AX = 8102h
  64.     DX = 0000h
  65. Return: CF clear if successful
  66.         AH = major version number
  67.         AL = minor version number
  68.         BX = product number (see #2400)
  69.         CX = product revision number
  70.         always 0000h for QMAPS and HPMM.SYS
  71.         always 0001h for Microsoft's EMM386.EXE v4.20-4.41
  72.         DX = flags (see #2402)
  73.         SI:DI = maximum DMA buffer size
  74.     CF set on error
  75.         AL = error code (see #2401)
  76. Note:    bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
  77.       apparently not always the case
  78. SeeAlso: INT 2C/AX=002Bh,INT 31
  79. Index:    installation check;Virtual DMA Spec
  80.  
  81. (Table 2400)
  82. Values for VDS product number:
  83.  0000h    for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
  84.  0001h    for Microsoft's EMM386.EXE
  85.  0003h    for Windows 3.x WIN386.EXE
  86.  0300h    OS/2 (all versions to date)
  87.  0EDCh    for DR DOS 6.0 EMM386.SYS
  88.  4560h    ("E`") for Qualitas' 386MAX
  89.  4D43h    ("MC") for V Communications' Memory Commander
  90.  5145h    ("QE") for Quarterdeck's QEMM-386
  91.  524Dh    ("RM") for Helix's Netroom RM386
  92.  
  93. (Table 2401)
  94. Values for VDS error code:
  95.  01h    region not in contiguous memory
  96.  02h    region crossed a physical alignment boundary
  97.  03h    unable to lock pages
  98.  04h    no buffer available
  99.  05h    region too large for buffer
  100.  06h    buffer currently in use
  101.  07h    invalid memory region
  102.  08h    region was not locked
  103.  09h    number of physical pages greater than table length
  104.  0Ah    invalid buffer ID
  105.  0Bh    copy out of buffer range
  106.  0Ch    invalid DMA channel number
  107.  0Dh    disable count overflow
  108.  0Eh    disable count underflow
  109.  0Fh    function not supported
  110.  10h    reserved flag bits set in DX
  111.  
  112. Bitfields for VDS flags:
  113. Bit(s)    Description    (Table 2402)
  114.  0    PC/XT bus (DMA in first megabyte only)
  115.  1    physical buffer/remap region in first megabyte
  116.  2    automatic remap enabled
  117.  3    all memory is physically contiguous
  118.  4-15    reserved (zero)
  119. --------d-4B8103-----------------------------
  120. INT 4B - Virtual DMA Specification - LOCK DMA REGION
  121.     AX = 8103h
  122.     DX = flags (see #2403)
  123.     ES:DI -> DMA descriptor structure (see #2404,#2405,#2406)
  124. Return: CF clear if successful
  125.         DDS physical address field filled in
  126.         DDS buffer ID field filled (0000h if no buffer allocated)
  127.     CF set on error
  128.         AL = error code (see #2401)
  129.         DDS region size field filled wth maximum contiguous length in bytes
  130. BUGS:    Windows 3.0 does not correctly support automatic remapping or copying
  131.       in enhanced mode
  132.     Windows 3.0 in enhanced mode does not return a correct code on error
  133. SeeAlso: AX=8104h,AX=8105h
  134.  
  135. Bitfields for VDS flags:
  136. Bit(s)    Description    (Table 2403)
  137.  0    reserved (zero)
  138.  1    data should be copied into buffer (ignored if 2 set)
  139.  2    buffer should not be allocated if region noncontiguous or crosses
  140.       physical alignment boundary specified by 4-5
  141.  3    don't attempt automatic remap
  142.  4    region must not cross 64K physical alignment boundary
  143.  5    region must not cross 128K physical alignment boundary
  144.  6-15    reserved (zero)
  145.  
  146. Format of DMA descriptor structure (DDS):
  147. Offset    Size    Description    (Table 2404)
  148.  00h    DWORD    region size
  149.  04h    DWORD    offset
  150.  08h    WORD    segment/selector
  151.  0Ah    WORD    buffer ID
  152.  0Ch    DWORD    physical address
  153.  
  154. Format of Extended DMA descriptor structure (EDDS):
  155. Offset    Size    Description    (Table 2405)
  156.  00h    DWORD    region size
  157.  04h    DWORD    offset
  158.  08h    WORD    segment/selector
  159.  0Ah    WORD    reserved
  160.  0Ch    WORD    number available
  161.  0Eh    WORD    number used
  162.  10h    DWORD    region 0 physical address
  163.  14h    DWORD    region 0 size in bytes
  164.  18h    DWORD    region 1 physical address
  165.  1Ch    DWORD    region 1 size in bytes
  166.     ...
  167.  
  168. Format of Extended DMA descriptor structure (EDDS) with page table entries:
  169. Offset    Size    Description    (Table 2406)
  170.  00h    DWORD    region size
  171.  04h    DWORD    offset
  172.  08h    WORD    segment/selector
  173.  0Ah    WORD    reserved
  174.  0Ch    WORD    number available
  175.  0Eh    WORD    number used
  176.  10h    DWORD    page table entry 0 (same as 80386 page table entry)
  177.  14h    DWORD    page table entry 1
  178.     ...
  179. Note:    bits 1-11 of the page table entries should be zero; bit 0 set if page
  180.       is present and locked
  181. --------d-4B8104-----------------------------
  182. INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
  183.     AX = 8104h
  184.     DX = flags
  185.         bit 0: reserved (zero)
  186.         bit 1: data should be copied out of buffer
  187.         bits 2-15 reserved (zero)
  188.     ES:DI -> DMA descriptor structure (see #2404,#2405) with region size,
  189.           physical address, and buffer ID fields set
  190. Return: CF clear if successful
  191.         DDS physical address field set
  192.         DDS buffer ID field set (0000h if no buffer allocated)
  193.     CF set on error
  194.         AL = error code (see #2401)
  195.         DDS region size field filled wth maximum contiguous length in bytes
  196. Note:    Windows 3.0 does not check whether the region extends beyond the end of
  197.       a segment
  198. BUG:    Windows 3.0 in enhanced mode does not return a correct code on error
  199. SeeAlso: AX=8103h,AX=8106h
  200. --------d-4B8105-----------------------------
  201. INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
  202.     AX = 8105h
  203.     DX = flags (see #2407)
  204.     ES:DI -> Extended DMA descriptor structure (see #2405,#2406)
  205.           region size, linear segment, linear offset, and number avail
  206.           fields set
  207. Return: CF clear if successful
  208.         EDDS number used field set
  209.         if DX bit 6 set, lower 12 bits of BX = offset in first page
  210.     CF set on error
  211.         AL = error code (see #2401)
  212.         EDDS region size field filled with max length in bytes that can be
  213.           locked and described in the EDDS table
  214. BUG:    Windows 3.0 in enhanced mode may return zero instead of the physical
  215.       page address for pages which were originally not present
  216. SeeAlso: AX=8103h,AX=8106h
  217.  
  218. Bitfields for VDS flags:
  219. Bit(s)    Description    (Table 2407)
  220.  0-5    reserved (zero)
  221.  6    EDDS should be returned with page table entries
  222.  7    only present pages should be locked (not-present pages receive entry
  223.       of 0000h)
  224.  8-15    reserved (zero)
  225. --------d-4B8106-----------------------------
  226. INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
  227.     AX = 8106h
  228.     DX = flags (see #2408)
  229.     ES:DI -> Extended DMA descriptor structure (see #2405,#2406) returned
  230.           by AX=8105h
  231. Return: CF clear if successful
  232.     CF set on error
  233.         AL = error code (see #2401)
  234. Note:    according to the Microsoft version of the VDS specification, the
  235.       actual scatter/gather list is ignored, while according to the IBM
  236.       version of the specification, "the result of a LOCK operation"
  237.       must be provided to this function
  238. SeeAlso: AX=8104h,AX=8105h
  239.  
  240. Bitfields for VDS flags:
  241. Bit(s)    Description    (Table 2408)
  242.  0-5    reserved (zero)
  243.  6    EDDS contains page table entries
  244.  7    EDDS may contain not-present pages (entry = 0000h)
  245.  8-15    reserved (zero)
  246. --------d-4B8107-----------------------------
  247. INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
  248.     AX = 8107h
  249.     DX = flags
  250.         bit 0: reserved (zero)
  251.         bit 1: data should be copied into buffer
  252.         bits  2-15 reserved (zero)
  253.     ES:DI -> DMA descriptor structure (see #2404) with region size set
  254.           (also region offset and region segment if DX bit 1 set)
  255. Return: CF clear if successful
  256.         DDS physical address and buffer ID set
  257.         DDS region size filled with length of buffer
  258.     CF set on error
  259.         AL = error code (see #2401)
  260. SeeAlso: AX=8108h
  261. --------d-4B8108-----------------------------
  262. INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
  263.     AX = 8108h
  264.     DX = flags
  265.         bit 0: reserved (zero)
  266.         bit 1: data should be copied out of buffer
  267.         bits 2-15 reserved (zero)
  268.     ES:DI -> DMA descriptor structure (see #2404,#2405) with buffer ID set
  269.           (also region size/region offset/segment if DX bit 1 set)
  270. Return: CF clear if successful
  271.     CF set on error
  272.         AL = error code (see #2401)
  273. BUG:    under Windows 3.0 Enhanced mode, you must specify that data be copied
  274.       for this function to work correctly
  275. SeeAlso: AX=8107h
  276. --------d-4B8109DX0000-----------------------
  277. INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
  278.     AX = 8109h
  279.     DX = 0000h
  280.     ES:DI -> DMA descriptor structure (see #2404,#2405) with buffer ID,
  281.           region segment/offset, and region size fields set
  282.     BX:CX = starting offset into DMA buffer
  283. Return: CF clear if successful
  284.     CF set on error
  285.         AL = error code (see #2401)
  286. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  287. SeeAlso: AX=810Ah
  288. --------d-4B810ADX0000-----------------------
  289. INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
  290.     AX = 810Ah
  291.     DX = 0000h
  292.     ES:DI -> DMA descriptor structure (see #2404,#2406) with buffer ID,
  293.           region segment/offset, and region size fields set
  294.     BX:CX = starting offset into DMA buffer
  295. Return: CF clear if successful
  296.     CF set on error
  297.         AL = error code (see #2401)
  298. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  299. SeeAlso: AX=8109h
  300. --------d-4B810B-----------------------------
  301. INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
  302.     AX = 810Bh
  303.     BX = DMA channel number
  304.     DX = 0000h
  305. Return: CF clear if successful
  306.     CF set on error
  307.         AL = error code (see #2401)
  308. SeeAlso: AX=810Ch
  309. --------d-4B810C-----------------------------
  310. INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
  311.     AX = 810Ch
  312.     BX = DMA channel number
  313.     DX = 0000h
  314. Return: CF clear if successful
  315.         ZF set if disable count decremented to zero
  316.     CF set on error
  317.         AL = error code (see #2401)
  318. SeeAlso: AX=810Bh
  319. --------Q-4B810D-----------------------------
  320. INT 4B - QEMM-386 - BUG
  321.     AX = 810Dh
  322. Note:    the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
  323.       call
  324. --------h-4C---------------------------------
  325. INT 4C - Z100 - Slave 8259 - S100 vectored line 4
  326. SeeAlso: INT 4B"Z100",INT 4D"Z100"
  327. --------b-4C---------------------------------
  328. INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
  329.     no details available
  330. SeeAlso: INT 40"TI Professional",INT 49"TI Professional"
  331. SeeAlso: INT 4A"TI Professional",INT 4B"TI Professional",INT 4D/AH=00h
  332. SeeAlso: INT 58"TI Professional"
  333. --------b-4C---------------------------------
  334. INT 4C - Tandy 2000 - GET MEMORY SIZE
  335. Return: AX = kilobytes of contiguous memory starting at 0
  336. Note:    this interrupt is identical to INT 12 on the Tandy 2000
  337. SeeAlso: INT 12"BIOS",INT 4A"Tandy 2000",INT 4B"Tandy 2000",INT 51"Tandy 2000"
  338. --------O-4C---------------------------------
  339. INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE
  340.     DS:BX -> CR-terminated command string
  341. Return: FLAGS destroyed
  342. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4B"Acorn"
  343. --------h-4D---------------------------------
  344. INT 4D - Z100 - Slave 8259 - S100 vectored line 5
  345. SeeAlso: INT 4C"Z100",INT 4E"Z100"
  346. --------B-4D00-------------------------------
  347. INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
  348.     AH = 00h
  349.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  350. Return: AH = status (see #0142 at INT 13/AH=01h)
  351.     CF clear if successful (returned AH=00h)
  352.     CF set on error
  353. Note:    this function is the same as INT 13/AH=00h on a standard PC BIOS
  354. SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional"
  355. SeeAlso: INT 48"TI Professional",INT 4A"TI Professional"
  356. --------B-4D01-------------------------------
  357. INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
  358.     AH = 01h
  359.     DL = drive (bit 7 set for hard disk)
  360. Return: CF clear if status unchanged
  361.     CF set if status changed since last call
  362.     AH = 00h
  363.     AL = status of previous operation (see #0142 at INT 13/AH=01h)
  364. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  365.     the TI's BIOS tranparently performs a number of retries, and an error
  366.       status is only reported if all of the retries fail.  To get the error
  367.       status if the operation succeeded on a retry, use AH=07h instead
  368. SeeAlso: AH=00h,AH=07h,INT 13/AH=01h
  369. --------B-4D02-------------------------------
  370. INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
  371.     AH = 02h
  372.     AL = number of sectors to read (must be nonzero)
  373.     CH = low eight bits of cylinder number
  374.     CL = sector number 1-63 (bits 0-5)
  375.          high two bits of cylinder (bits 6-7, hard disk only)
  376.     DH = head number
  377.     DL = drive number (bit 7 set for hard disk)
  378.     ES:BX -> data buffer
  379. Return: CF set on error
  380.         if AH = 11h (corrected ECC error), AL = burst length
  381.     CF clear if successful
  382.     AH = status (see #0142 at INT 13/AH=01h)
  383.     AL = number of sectors transferred
  384.     ES:BX -> buffer for last sector processed (including one with errors)
  385. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02h
  386. --------B-4D03-------------------------------
  387. INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY
  388.     AH = 03h
  389.     AL = number of sectors to write (must be nonzero)
  390.     CH = low eight bits of cylinder number
  391.     CL = sector number 1-63 (bits 0-5)
  392.          high two bits of cylinder (bits 6-7, hard disk only)
  393.     DH = head number
  394.     DL = drive number (bit 7 set for hard disk)
  395.     ES:BX -> buffer containing data
  396. Return: CF set on error
  397.         if AH = 11h (corrected ECC error), AL = burst length
  398.     CF clear if successful
  399.     AH = status (see #0142 at INT 13/AH=01h)
  400.     AL = number of sectors transferred
  401.     ES:BX -> buffer for last sector processed (including one with errors)
  402. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03h
  403. --------B-4D04-------------------------------
  404. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
  405.     AH = 04h
  406.     AL = number of sectors to verify (must be nonzero)
  407.     CH = low eight bits of cylinder number
  408.     CL = sector number 1-63 (bits 0-5)
  409.          high two bits of cylinder (bits 6-7, hard disk only)
  410.     DH = head number
  411.     DL = drive number (bit 7 set for hard disk)
  412.     ES:BX -> data buffer
  413. Return: CF set on error
  414.         if AH = 11h (corrected ECC error), AL = burst length
  415.     CF clear if successful
  416.     AH = status (see #0142 at INT 13/AH=01h)
  417.     AL = number of sectors transferred
  418.     ES:BX -> buffer for last sector processed (including one with errors)
  419. Note:    even though no data is transferred, ES:BX must still be valid
  420. SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04h
  421. --------B-4D06-------------------------------
  422. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
  423.     AH = 06h
  424.     AL = number of sectors to verify (must be nonzero)
  425.     CH = low eight bits of cylinder number
  426.     CL = sector number 1-63 (bits 0-5)
  427.          high two bits of cylinder (bits 6-7, hard disk only)
  428.     DH = head number
  429.     DL = drive number (bit 7 set for hard disk)
  430.     ES:BX -> data buffer
  431. Return: CF set on error
  432.         if AH = 11h (corrected ECC error), AL = burst length
  433.     CF clear if successful
  434.     AH = status (see #0142 at INT 13/AH=01h)
  435.     AL = number of sectors transferred
  436.     ES:BX -> buffer for last sector processed (including one with errors)
  437. Note:    even though no data is transferred, ES:BX must still be valid because
  438.       an actual comparison with disk data is performed, not just the CRC
  439.       check of the standard PC BIOS or INT 4D/AH=04h
  440. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04h
  441. --------B-4D07-------------------------------
  442. INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
  443.     AH = 07h
  444.     DL = drive (bit 7 set for hard disk)
  445. Return: CF clear if status unchanged
  446.     CF set if status changed since last call
  447.     AH = 00h
  448.     AL = status of previous operation (see #0142 at INT 13/AH=01h)
  449. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  450.     the TI's BIOS tranparently performs a number of retries; this function
  451.       returns the error status of a failed operation even if the operation
  452.       succeeded on a retry
  453. SeeAlso: AH=00h,AH=01h,INT 13/AH=01h
  454. --------B-4D08-------------------------------
  455. INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
  456.     AH = 08h
  457.     DL = drive number (00h-03h)
  458.     AL = drive type
  459.         00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  460.         01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  461.         02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  462.         03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  463. Return: nothing???
  464. SeeAlso: AH=00h,AH=09h
  465. --------B-4D09-------------------------------
  466. INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
  467.     AH = 09h
  468.     DL = drive number (00h-07h)
  469.     ES:BX -> Device Interface Table (see #2409)
  470. Return: nothing???
  471. SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E
  472.  
  473. Format of TI Professional PC Device Interface Table:
  474. Offset    Size    Description    (Table 2409)
  475.  00h    DWORD    -> entry point for disk routine
  476.  04h    WORD    bytes per sector
  477.  06h    BYTE    sectors per track
  478.  07h    BYTE    number of heads
  479.  08h    BYTE    number of cylinders
  480.  09h    BYTE    retry count
  481.  0Ah    BYTE    precompensation start
  482. SeeAlso: #0640 at INT 1E
  483. --------B-4D0A-------------------------------
  484. INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
  485.     AH = 0Ah
  486.     DL = drive number (00h-07h)
  487. Return:    AH = status
  488.     ES:BX -> Device Interface Table (see #2409)
  489. SeeAlso: AH=00h,AH=08h,AH=09h,INT 1E
  490. --------B-4D0B-------------------------------
  491. INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
  492.     AH = 0Bh
  493. Return: AH = 00h
  494. Note:    used for diagnostics or to conserve power
  495. SeeAlso: AH=00h
  496. --------h-4E---------------------------------
  497. INT 4E - Z100 - Slave 8259 - S100 vectored line 6
  498. SeeAlso: INT 4D"Z100",INT 4F"Z100"
  499. --------b-4E---------------------------------
  500. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK DEVICE SERVICE ROUTINE
  501.     no details available
  502. SeeAlso: INT 40"TI Professional",INT 48"TI Professional"
  503. SeeAlso: INT 4A"TI Professional",INT 4F"TI Professional"
  504. --------h-4F---------------------------------
  505. INT 4F - Z100 - Slave 8259 - S100 vectored line 7
  506. SeeAlso: INT 4E"Z100"
  507. --------b-4F---------------------------------
  508. INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
  509.     no details available
  510. SeeAlso: INT 40"TI Professional",INT 49"TI Professional"
  511. SeeAlso: INT 4B"TI Professional",INT 4D/AH=00h,INT 4E"TI Professional"
  512. --------d-4F8100-----------------------------
  513. INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
  514.     AX = 8100h
  515.     ES:BX -> CAM Control Block (CCB) (see #2411)
  516. Return: AH = status
  517.         00h successful
  518.         01h invalid CCB address (0000h:0000h)
  519. Note:    the SCSI Interface Module (SIM) may complete the requested function
  520.       and invoke the completion callback function before this call returns
  521. SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method"
  522.  
  523. (Table 2410)
  524. Values for CAM function code:
  525.  00h    NOP
  526.  01h    execute SCSI I/O
  527.  02h    get device type
  528.  03h    path inquiry
  529.  04h    release SIM queue
  530.  05h    set async callback
  531.  06h    set device type
  532.  07h-0Fh reserved
  533.  10h    abort SCSI command
  534.  11h    reset SCSI bus
  535.  12h    reset SCSI device
  536.  13h    terminate I/O process
  537.  14h-1Fh reserved
  538.  20h    engine inquiry
  539.  21h    execute engine request
  540.  22h-2Fh reserved
  541.  30h    enable logical unit number
  542.  31h    execute target I/O
  543.  32h-7Fh reserved
  544.  80h-FFh vendor-specific functions
  545.  
  546. Format of CAM Control Block:
  547. Offset    Size    Description    (Table 2411)
  548.  00h    DWORD    physical address of this CCB
  549.  04h    WORD    CAM control block length
  550.  06h    BYTE    function code (see #2410)
  551.  07h    BYTE    CAM status (see #2414)
  552.  08h    BYTE    SCSI status
  553.  09h    BYTE    path ID (FFh = XPT)
  554.  0Ah    BYTE    target ID
  555.  0Bh    BYTE    logical unit number
  556.  0Ch    WORD    CAM flags (see #2412)
  557.  0Eh    BYTE    CAM address flags (see #2413)
  558.  0Fh    BYTE    target-mode flags (see #2415)
  559. ---function 02h---
  560.  10h    DWORD    pointer to 36-byte buffer for inquiry data or 0000h:0000h
  561.  14h    BYTE    peripheral device type of target logical unit number
  562. ---function 03h---
  563.  10h    BYTE    version number (00h-07h prior to rev 1.7, 08h = rev 1.7,
  564.         09h-FFh = rev no, i.e. 23h = rev 2.3)
  565.  11h    BYTE    SCSI capabilities (see #2416)
  566.  12h    BYTE    target mode support
  567.         bit 7: processor mode
  568.         bit 6: phase-cognizant mode
  569.         bit 5-0: reserved
  570.  13h    BYTE    miscellaneous flags
  571.         bit 7: scanned high to low instead of low to high
  572.         bit 6: removables not included in scan
  573.         bit 5: inquiry data not kept by XPT
  574.         bits 4-0: reserved
  575.  14h    WORD    engine count
  576.  16h 14 BYTEs    vendor-specific data
  577.  24h    DWORD    size of private data area
  578.  28h    DWORD    asynchronous event capabilities (see #2417)
  579.  2Ch    BYTE    highest path ID assigned
  580.  2Dh    BYTE    SCSI device ID of initiator
  581.  2Eh  2 BYTEs    reserved
  582.  30h 16 BYTEs    SIM vendor ID
  583.  40h 16 BYTEs    HBA (host bus adaptor) vendor ID
  584.  50h  4 BYTEs    operating-system dependant usage
  585. ---functions 00h,04h,11h,12h---
  586.  no additional fields
  587. ---function 05h---
  588.  10h    DWORD    asynchronous event enables (see function 03h above)
  589.  14h    DWORD    pointer to asynchronous callback routine (see #2419)
  590.  18h    DWORD    pointer to peripheral driver buffer
  591.  1Ch    BYTE    size of peripheral buffer
  592. ---function 06h---
  593.  10h    BYTE    peripheral device type of target
  594. ---functions 10h,13h---
  595.  10h    DWORD    pointer to CCB to be aborted
  596. ---function 20h---
  597.  10h    WORD    engine number
  598.  12h    BYTE    engine type
  599.         00h buffer memory
  600.         01h lossless compression
  601.         02h lossy compression
  602.         03h encryption
  603.  13h    BYTE    engine algorithm ID
  604.         00h vendor-unique
  605.         01h LZ1 variation 1 (STAC)
  606.         02h LZ2 variation 1 (HP DCZL)
  607.         03h LZ2 variation 2 (Infochip)
  608.  14h    DWORD    engine memory size
  609. ---function 21h---
  610.  10h    DWORD    pointer to peripheral driver
  611.  14h  4 BYTEs    reserved
  612.  18h    DWORD    OS-dependent request-mapping info
  613.  1Ch    DWORD    address of completion callback routine
  614.  20h    DWORD    pointer to scatter/gather list or data buffer
  615.  24h    DWORD    length of data transfer
  616.  28h    DWORD    pointer to engine buffer data
  617.  2Ch  2 BYTEs    reserved
  618.  2Eh    WORD    number of scatter/gather entries
  619.  30h    DWORD    maximum destination data length
  620.  34h    DWORD    length of destination data
  621.  38h    DWORD    source residual length
  622.  3Ch 12 BYTEs    reserved
  623.  48h    DWORD    OS-dependent timeout value
  624.  4Ch  4 BYTEs    reserved
  625.  50h    WORD    engine number
  626.  52h    WORD    vendor-unique flags
  627.  54h  4 BYTEs    reserved
  628.  58h  N BYTEs    private data area for SIM
  629. ---function 30h---
  630.  10h    WORD    group 6 vendor-unique CDB length
  631.  12h    WORD    group 7 vendor-unique CDB length
  632.  14h    DWORD    pointer to target CCB list
  633.  18h    WORD    number of target CCBs
  634. ---other functions---
  635.  10h    DWORD    pointer to peripheral driver
  636.  14h    DWORD    pointer to next CCB
  637.  18h    DWORD    OS-dependent request mapping information
  638.  1Ch    DWORD    address of completion callback routine (see #2418)
  639.  20h    DWORD    pointer to scatter/gather list or data buffer
  640.  24h    DWORD    length of data transfer
  641.  28h    DWORD    pointer to sense info buffer
  642.  2Ch    BYTE    length of sense info buffer
  643.  2Dh    BYTE    CDB length
  644.  2Eh    WORD    number of scatter/gather entries
  645.  30h  4 BYTEs    reserved
  646.  34h    BYTE    SCSI status
  647.  35h  3 BYTEs    reserved
  648.  38h    DWORD    residual length
  649.  40h 12 BYTEs    Command Descriptor Block (CDB)
  650.  44h    DWORD    OS-dependent timeout value
  651.  48h    DWORD    pointer to message buffer
  652.  4Ch    WORD    length of message buffer
  653.  4Eh    WORD    vendor-unique flags
  654.  50h    BYTE    tag queue action
  655.  51h  3 BYTEs    reserved
  656.  54h  N BYTEs    private data area for SIM
  657.  
  658. Bitfields for CAM flags:
  659. Bit(s)    Description    (Table 2412)
  660.  0    CDB is a pointer
  661.  1    tagged queue action enable
  662.  2    linked CDB
  663.  3    disable callback on completion
  664.  4    scatter/gather
  665.  5    disable autosense
  666.  7-6    direction (00 reserved, 01 in, 10 out, 11 no data transfer)
  667.  9-8    reserved
  668.  10    engine synchronize
  669.  11    SIM queue freeze
  670.  12    SIM queue priority
  671.     1 head insertion
  672.     0 tail insertion (normal)
  673.  13    disable synchronous transfers    / exclusive
  674.  14    initiate synchronous transfers    \ mutually
  675.  15    disable disconnect
  676.  
  677. Bitfields for CAM address flags:
  678. Bit(s)    Description    (Table 2413)
  679.  7    SG list/data (0 = host, 1 = engine)
  680.  6    CDB pointer    (6-1: 0=virtual addr, 1=phys addr)
  681.  5    SG list/data
  682.  4    sense buffer
  683.  3    message buffer
  684.  2    next CCB
  685.  1    callback on completion
  686.  0    reserved
  687.  
  688. (Table 2414)
  689. Values for CAM status:
  690.  00h    request in progress
  691.  01h    request successful
  692.  02h    host aborted request
  693.  03h    unable to abort request
  694.  04h    request completed with error
  695.  05h    CAM is busy
  696.  06h    invalid request
  697.  07h    invalid path ID
  698.  08h    no such SCSI device
  699.  09h    unable to terminate I/O process
  700.  0Ah    timeout on target selection
  701.  0Bh    timeout on command
  702.  0Dh    receive message rejection
  703.  0Eh    sent/received SCSI bus reset
  704.  0Fh    detected uncorrectable parity error
  705.  10h    Autosense request failed
  706.  11h    no HBA detected
  707.  12h    data over/underrun
  708.  13h    bus freed unexpectedly
  709.  14h    target bus phase sequence failure
  710.  15h    CCB too small
  711.  16h    requested capability not available
  712.  17h    sent bus device reset
  713.  18h    terminate I/O process
  714.  38h    invalid LUN
  715.  39h    invalid target ID
  716.  3Ah    unimplemented function
  717.  3Bh    nexus not established
  718.  3Ch    invalid initiator ID
  719.  3Dh    received SCSI Command Descriptor Block
  720.  3Eh    LUN already enabled
  721.  3Fh    SCSI bus busy
  722. Note:    bit 6 set to indicate frozen SIM queue
  723.     bit 7 set to indicate valid autosense
  724.  
  725. Bitfields for CAM target-mode flags:
  726. Bit(s)    Description    (Table 2415)
  727.  7    data buffer valid
  728.  6    status valid
  729.  5    message buffer valid
  730.  4    reserved
  731.  3    phase-cognizant mode
  732.  2    target CCB available
  733.  1    disable autodisconnect
  734.  0    disable autosave/restore
  735.  
  736. Bitfields for SCSI capabilities:
  737. Bit(s)    Description    (Table 2416)
  738.  7    modify data pointers
  739.  6    wide bus (32 bits)
  740.  5    wide bus (16 bits)
  741.  4    synchronous transfers
  742.  3    linked commands
  743.  2    reserved
  744.  1    tagged queueing
  745.  0    soft reset
  746.  
  747. Bitfields for CAM asynchronous event capabilities:
  748. Bit(s)    Description    (Table 2417)
  749.  31-24    vendor-specific
  750.  23-8    reserved
  751.  7    new devices found during rescan
  752.  6    SIM module deregistered
  753.  5    SIM module registered
  754.  4    sent bus device reset to target
  755.  3    SCSI AEN
  756.  2    reserved
  757.  1    unsolicited reselection
  758.  0    unsolicited SCSI bus reset
  759.  
  760. (Table 2418)
  761. Values completion callback function is called with:
  762.     interrupts disabled
  763.     ES:BX -> completed CCB
  764.  
  765. (Table 2419)
  766. Values asynchronous callback function is called with:
  767.     AH = opcode
  768.     AL = path ID generating callback
  769.     DH = target ID causing event
  770.     DL = LUN causing event
  771.     CX = data byte count (if applicable)
  772.     ES:BX -> data buffer (if applicable)
  773. Return: all registers preserved
  774. --------d-4F8200CX8765-----------------------
  775. INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
  776.     AX = 8200h
  777.     CX = 8765h
  778.     DX = CBA9h
  779. Return: AH = 00h if installed
  780.         CX = 9ABCh
  781.         DX = 5678h
  782.         ES:DI -> "SCSI_CAM"
  783. SeeAlso: AX=8100h,INT 4B"Common Access Method"
  784. --------N-50---------------------------------
  785. INT 50 - TIL Xpert AIM (X.25)
  786.     AH = function
  787. --------H-50---------------------------------
  788. INT 50 - IRQ0 relocated by DESQview
  789. Range:    INT 50 to INT F8, selected automatically
  790. Notes:    this is the default location for older versions; DESQview v2.26+
  791.       searches for unused ranges of interrupts and uses the lowest
  792.       available range in its list for relocating these IRQs and the next
  793.       lowest for relocating IRQ8-IRQ15
  794.     a range of eight interrupts starting at a multiple of 8 is considered
  795.       available if all vectors are identical and it has not been excluded
  796.       with an /XB:nn commandline switch
  797.     the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  798.       are available, F8h and then 50h are used anyway)
  799.     the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  800.       are available, F8h and then F0h are used anyway)
  801. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  802. SeeAlso: INT D8"Screen Thief"
  803. --------H-50---------------------------------
  804. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  805. SeeAlso: INT 51"IBM 3278"
  806. --------H-50---------------------------------
  807. INT 50 - IRQ0 relocated by OS/2 v1.x
  808. SeeAlso: INT 51"OS/2"
  809. ----------50---------------------------------
  810. INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
  811.     no details available
  812. Note:    for system use only
  813. SeeAlso: INT 40"TI Professional",INT 4F"TI Professional"
  814. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  815. --------V-500000-----------------------------
  816. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  817.     AX = 0000h
  818.     ES:BX -> name string or ES:0000h if none
  819.     CH,CL = row,column of upper left corner
  820.     DH,DL = row,column of lower right corner
  821. Return: AX = window handle or
  822.         0000h if not installed
  823.         FFFFh on error
  824. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  825. --------V-500001-----------------------------
  826. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  827.     AX = 0001h
  828.     DI = window handle
  829. SeeAlso: AX=0000h
  830. --------V-500002-----------------------------
  831. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  832.     AX = 0002h
  833.     BL = character
  834.     BH = attribute
  835.     DL = column
  836.     DH = row
  837.     DI = window handle
  838. Return: AX = status
  839.         0000h if successful
  840.         FFFFh if outside window
  841. SeeAlso: AX=0000h
  842. --------l-500002-----------------------------
  843. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  844.     AX = 0002h
  845.     ES:BX -> text string
  846.     DH,DL = row,column of upper left corner
  847.     DI = window handle
  848. Return: AX = status
  849.         0000h successful (text fits in window)
  850.         FFFFh error
  851. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  852.       published in the June/July 1990 issue of PC Thuis Power magazine
  853. --------V-500003-----------------------------
  854. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  855.     AX = 0003h
  856.     ES:BX -> text string
  857.     CX = string length (0000h if ASCIZ string)
  858.     DL = position (FFh centered, else flush left)
  859.     DH = starting row
  860.     DI = window handle
  861. Return: AX = status
  862.         0000h successful
  863.         FFFFh did not fit in window
  864. --------l-500003-----------------------------
  865. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  866.     AX = 0003h
  867.     ES:BX -> data to be written
  868.     CX = number of bytes to write
  869.     DS:SI -> filename
  870. Return: AX = status
  871.         0000h successful
  872.         FFFFh error
  873. SeeAlso: AX=0004h"Shell"
  874. --------V-500004-----------------------------
  875. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  876.     AX = 0004h
  877.     CH = type
  878.         00h any key
  879.         01h 'J' or 'N' (Dutch for yes/no)
  880. Return: AX = key
  881. SeeAlso: INT 16/AH=00h
  882. --------l-500004-----------------------------
  883. INT 50 - PC Thuis Organizer Shell - READ FILE
  884.     AX = 0004h
  885.     ES:BX -> buffer for data
  886.     CX = number of bytes to read or 0000h for entire file
  887.     DL = file type
  888.         01h setting shell
  889.         02h setting sterm
  890.         03h INT21 file
  891.     DS:SI -> filename
  892. Return: AX = status
  893.         0000h successful
  894.         FFFFh error
  895. Note:    file type numbers are maintained by John Vanderaart; if a new file type
  896.       is needed, a type number should be requested from him through the
  897.       magazine:
  898.         PC Thuis BV
  899.         Spaarne 55
  900.         2011 CE HAARLEM
  901.         The Netherlands
  902. SeeAlso: AX=0003h"Shell"
  903. --------V-500005-----------------------------
  904. INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  905.     AX = 0005h
  906.     BL = new attribute
  907.     CH,CL = row,column of upper left corner
  908.     DH,DL = row,column of lower right corner
  909.     DI = window handle
  910. --------l-500005-----------------------------
  911. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  912.     AX = 0005h
  913.     ES:BX -> prompt string (ES:0000h if no prompt)
  914. Return: AX = key pressed
  915.         0000h "J" (Dutch "Ja" = "Yes")
  916.         FFFFh "N" (Dutch "Nee" = "No")
  917. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  918.       published in the June/July 1990 issue of PC Thuis Power magazine
  919. SeeAlso: AX=0008h"PC Thuis"
  920. --------V-500006-----------------------------
  921. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  922.     AX = 0006h
  923.     ES:BX -> text string
  924.     CH = type of input (see #2420)
  925.     DH,DL = row,column of upper left corner
  926.     DI = window handle
  927. Return: AX = key which terminated entry
  928.         0000h Enter
  929.         0001h Esc
  930.         0002h Down arrow
  931.         0003h Up arrow
  932.         0004h F10
  933.  
  934. (Table 2420)
  935. Values for type of input to Vanderaart Text Windows:
  936.  00h    everything
  937.  01h    uppercase only
  938.  02h    positive numbers
  939.  03h    Dutch postal code ("9999 AA")
  940.  04h    'J' or 'N' (Dutch yes/no)
  941.  05h    telephone or FAX number
  942.  06h    positive or negative number
  943.  07h    date (dd/mm/yy)
  944.  08h    money
  945.  09h    '1' through '8'
  946.  0Ah    '1' through '4'
  947.  0Bh    uppercase filenames
  948. --------l-500006-----------------------------
  949. INT 50 - PC Thuis Organizer Shell - ALERT USER
  950.     AX = 0006h
  951.     ES:BX -> string
  952. --------l-500007-----------------------------
  953. INT 50 - PC Thuis Organizer Shell - DO LINE
  954.     AX = 0007h
  955.     ES:BX -> text string
  956.     CX = string length in bytes (0000h if NUL-terminated)
  957.     DL = FFh to center string, else flush left
  958.     DH = upper left row
  959.     DI = window handle
  960. Return: AX = status
  961.         0000h successful
  962.         FFFFh error
  963. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  964.       published in the June/July 1990 issue of PC Thuis Power magazine
  965. SeeAlso: AX=0008h
  966. --------l-500008-----------------------------
  967. INT 50 - PC Thuis Organizer Shell - DO MENU
  968.     AX = 0008h
  969.     ES:BX -> menu structure
  970. Return: AL = index 1 or FFh if not selected
  971.     AH = index 2 or FFh if not selected
  972.     BL = index 3 or FFh if not selected
  973.     BH = index 4 or FFh if not selected
  974. SeeAlso: AX=0005h"PC Thuis",AX=0007h,AX=000Ch
  975. --------l-500009-----------------------------
  976. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  977.     AX = 0009h
  978.     ES:BX -> message string
  979. SeeAlso: AX=000Ah
  980. --------l-50000A-----------------------------
  981. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  982.     AX = 000Ah
  983. SeeAlso: AX=0009h
  984. --------l-50000B-----------------------------
  985. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  986.     AX = 000Bh
  987.     BL = new attribute
  988.     CH,CL = row,column of upper left corner
  989.     DH,DL = row,column of lower right corner
  990.     DI = window handle
  991. --------l-50000C-----------------------------
  992. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  993.     AX = 000Ch
  994.     ES:BX -> request structure
  995. Return: AX = status
  996.         0000h confirmed
  997.         FFFFh denied
  998. SeeAlso: AX=0008h
  999. --------l-50000D-----------------------------
  1000. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  1001.     AX = 000Dh
  1002.     ES:BX -> text string
  1003.     CL = length
  1004.     CH = input type (see #2421)
  1005.     DH,DL = row,column of upper left corner
  1006.     DI = window handle
  1007. Return: AX = result code
  1008. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  1009.       published in the June/July 1990 issue of PC Thuis Power magazine
  1010.  
  1011. Bitfields for input type:
  1012. Bit(s)    Description    (Table 2421)
  1013.  0    force uppercase
  1014.  1    integer
  1015.  2    no spaces allowed
  1016.  3    no cursor keys
  1017. --------l-50000E-----------------------------
  1018. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  1019.     AX = 000Eh
  1020.     BL = character
  1021.     BH = attribute
  1022.     DH,DL = row,column at which to plot
  1023.     DI = window handle
  1024. Return: AX = status
  1025.         0000h successful
  1026.         FFFFh errror
  1027. --------l-50000F-----------------------------
  1028. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  1029.     AX = 000Fh
  1030.     BL = character
  1031.     BH = attribute
  1032.     DI = window handle
  1033. --------l-500010-----------------------------
  1034. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  1035.     AX = 0010h
  1036.     ES:BX -> first menu structure
  1037.     CL = hotkey to look up
  1038. Return: AL = index 1 or FFh if not selected
  1039.     AH = index 2 or FFh if not selected
  1040.     BL = index 3 or FFh if not selected
  1041.     BH = index 4 or FFh if not selected
  1042. Index:    hotkeys;PC Thuis Organizer Shell
  1043. --------l-500011-----------------------------
  1044. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  1045.     AX = 0011h
  1046.     DS:SI -> source
  1047.     ES:DI -> destination
  1048.     CX = number of bytes to move (0000h = until NUL string terminator???)
  1049. SeeAlso: AX=0012h
  1050. --------l-500012-----------------------------
  1051. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  1052.     AX = 0012h
  1053.     DS:SI -> source
  1054.     ES:DI -> destination
  1055.     CX = number of bytes to compare (0000h=until NUL string terminator???)
  1056. Return: AX = status
  1057.         0000h same
  1058.         FFFFh different
  1059. SeeAlso: AX=0011h
  1060. --------l-500013-----------------------------
  1061. INT 50 - PC Thuis Organizer Shell - GET KEY
  1062.     AX = 0013h
  1063.     CH = type flags
  1064.         bit 0: force uppercase
  1065.         bit 1: integer
  1066.         bit 2: no spaces
  1067. Return: AX = keystroke
  1068. --------l-500014-----------------------------
  1069. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  1070.     AX = 0014h
  1071.     BL = direction
  1072.         06h up
  1073.         07h down
  1074.     BH = attribute
  1075.     DI = window handle
  1076. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  1077. --------l-500015-----------------------------
  1078. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  1079.     AX = 0015h
  1080.     BL = handle size
  1081.         00h 65536 bytes (64K)
  1082.         01h 65535 bytes (64K-1)
  1083.         02h 32768 bytes (32K)
  1084.         03h 32767 bytes (32K-1)
  1085. Return: AX = segment
  1086. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  1087.       published in the June/July 1990 issue of PC Thuis Power magazine
  1088. SeeAlso: INT 21/AH=48h
  1089. --------H-51---------------------------------
  1090. INT 51 - IRQ1 relocated by DESQview
  1091. Range:    INT 51 to INT F9, selected automatically
  1092. Note:    this is the default location for older versions; see INT 50"DESQview"
  1093.       for details of interrupt relocation
  1094. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  1095. --------H-51---------------------------------
  1096. INT 51 - IRQ1 relocated by IBM 3278 emulation control program
  1097. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  1098. --------H-51---------------------------------
  1099. INT 51 - IRQ1 relocated by OS/2 v1.x
  1100. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  1101. ----------51---------------------------------
  1102. INT 51 - TI Professional PC - RESTART TIMING EVENT
  1103.     no details available
  1104. Note:    for system use only
  1105. SeeAlso: INT 50"TI Professional",INT 52"TI Professional"
  1106. --------b-51---------------------------------
  1107. INT 51 - Tandy 2000 - KEYBOARD SERVICES
  1108. Note:    this interrupt is identical to INT 16 on Tandy 2000
  1109. SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h,INT 16/AH=03h"Tandy 2000"
  1110. SeeAlso: INT 16/AH=04h,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 52"Tandy 2000"
  1111. --------H-52---------------------------------
  1112. INT 52 - IRQ2 relocated by DESQview
  1113. Range:    INT 52 to INT FA, selected automatically
  1114. Note:    this is the default location for older versions; see INT 50"DESQview"
  1115.       for details of interrupt relocation
  1116. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  1117. --------H-52---------------------------------
  1118. INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1119. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  1120. ----------52---------------------------------
  1121. INT 52 - TI Professional PC - CANCEL TIMING EVENT
  1122.     no details available
  1123. Note:    for system use only
  1124. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  1125. --------b-52---------------------------------
  1126. INT 52 - Tandy 2000 - VIDEO SERVICES
  1127. Note:    this interrupt is identical to INT 10
  1128. SeeAlso: INT 10/AH=00h,INT 10/AH=01h,INT 10/AH=08h,INT 10/AH=0Eh
  1129. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 53"Tandy 2000"
  1130. --------H-53---------------------------------
  1131. INT 53 - IRQ3 relocated by DESQview
  1132. Range:    INT 53 to INT FB, selected automatically
  1133. Note:    this is the default location for older versions; see INT 50"DESQview"
  1134.       for details of interrupt relocation
  1135. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  1136. --------H-53---------------------------------
  1137. INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1138. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  1139. ----------53---------------------------------
  1140. INT 53 - TI Professional PC - SVC INTERFACE
  1141.     no details available
  1142. Note:    for use by multitaskers
  1143. SeeAlso: INT 50"TI Professional",INT 54"TI Professional"
  1144. --------b-53---------------------------------
  1145. INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS
  1146. Note:    this interrupt is identical to INT 14 on Tandy 2000
  1147. SeeAlso: INT 14/AH=00h,INT 14/AH=01h,INT 14/AH=02h,INT 14/AH=03h
  1148. SeeAlso: INT 14/AH=04h"Tandy 2000",INT 52"Tandy 2000",INT 54"Tandy 2000"
  1149. --------N-53---------------------------------
  1150. INT 53 - WEB??? - API
  1151.     BX = function
  1152.         0000h ???
  1153.         AX = ???
  1154.         Return: AX = ???
  1155.         0004h ???
  1156.         0009h ???
  1157.         0015h
  1158.         AX = ???
  1159.         DX = ???
  1160.         0017h
  1161. Return: ???
  1162. Notes:    the installation check consists of looking for the signature "WEBCO"
  1163.       immediately prior to the interrupt handler
  1164.     the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  1165. Index:    installation check;unknown|installation check;WEBCO
  1166. --------H-54---------------------------------
  1167. INT 54 - IRQ4 relocated by DESQview
  1168. Range:    INT 54 to INT FC, selected automatically
  1169. Note:    this is the default location for older versions; see INT 50"DESQview"
  1170.       for details of interrupt relocation
  1171. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  1172. --------H-54---------------------------------
  1173. INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1174. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  1175. ----------54---------------------------------
  1176. INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
  1177.     no details available
  1178. Note:    for use by multitaskers
  1179. SeeAlso: INT 50"TI Professional",INT 53"TI Professional"
  1180. --------b-54---------------------------------
  1181. INT 54 - Tandy 2000 - LINE PRINTER
  1182. Note:    this interrupt is identical to INT 17 on Tandy 2000
  1183. SeeAlso: INT 17/AH=00h,INT 17/AH=01h,INT 17/AH=02h,INT 4A"Tandy 2000"
  1184. SeeAlso: INT 53"Tandy 2000",INT 55"Tandy 2000"
  1185. --------X-545400-----------------------------
  1186. INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK
  1187.     AX = 5400h
  1188. Return: AX = 0054h if installed
  1189.         CX:DX -> INT function handler
  1190. --------H-55---------------------------------
  1191. INT 55 - IRQ5 relocated by DESQview
  1192. Range:    INT 55 to INT FD, selected automatically
  1193. Note:    this is the default location for older versions; see INT 50"DESQview"
  1194.       for details of interrupt relocation
  1195. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  1196. --------H-55---------------------------------
  1197. INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1198. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  1199. --------b-55---------------------------------
  1200. INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
  1201.     no details available
  1202. SeeAlso: INT 50"TI Professional",INT 56"TI Professional"
  1203. --------b-55---------------------------------
  1204. INT 55 - Tandy 2000 - SYSTEM CLOCK
  1205. Note:    this interrupt is identical to INT 1A on Tandy 2000
  1206. SeeAlso: INT 1A/AH=00h,INT 1A/AH=01h,INT 1A/AH=02h"Tandy 2000"
  1207. SeeAlso: INT 1A/AH=03h"Tandy 2000",INT 54"Tandy 2000",INT 56"Tandy 2000"
  1208. --------H-56---------------------------------
  1209. INT 56 - IRQ6 relocated by DESQview
  1210. Range:    INT 56 to INT FE, selected automatically
  1211. Note:    this is the default location for older versions; see INT 50"DESQview"
  1212.       for details of interrupt relocation
  1213. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  1214. --------H-56---------------------------------
  1215. INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1216. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  1217. --------b-56---------------------------------
  1218. INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
  1219.     no details available
  1220. SeeAlso: INT 50"TI Professional",INT 55"TI Professional"
  1221. --------b-56---------------------------------
  1222. INT 56 - Tandy 2000 - FLOPPY DISK SERVICES
  1223. Note:    this interrupt is identical to INT 13 on Tandy 2000
  1224. SeeAlso: INT 13/AH=00h,INT 13/AH=01h,INT 13/AH=02h,INT 13/AH=03h
  1225. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 55"Tandy 2000"
  1226. --------H-57---------------------------------
  1227. INT 57 - IRQ7 relocated by DESQview
  1228. Range:    INT 57 to INT FF, selected automatically
  1229. Note:    this is the default location for older versions; see INT 50"DESQview"
  1230.       for details of interrupt relocation
  1231. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  1232. --------H-57---------------------------------
  1233. INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
  1234. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  1235. --------b-57---------------------------------
  1236. INT 57 - TI Professional PC - CRT MAPPING HOOK
  1237.     no details available
  1238. SeeAlso: INT 49"TI Professional",INT 50"TI Professional"
  1239. --------H-58---------------------------------
  1240. INT 58 - IRQ8 relocated by DESQview 2.26+
  1241. Range:    INT 58 to INT F8, selected automatically
  1242. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1243. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 70
  1244. --------H-58---------------------------------
  1245. INT 58 - IRQ0 relocated by DoubleDOS
  1246. SeeAlso: INT 08
  1247. --------b-58---------------------------------
  1248. INT 58 - TI Professional PC - SYSTEM TIMER 25ms HOOK
  1249.     no details available
  1250. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  1251. SeeAlso: INT 5A"TI Professional"
  1252. --------H-59---------------------------------
  1253. INT 59 - IRQ9 relocated by DESQview 2.26+
  1254. Range:    INT 59 to INT F9, selected automatically
  1255. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1256. SeeAlso: INT 50"DESQview",INT 58"DESQview",INT 5A"DESQview",INT 71
  1257. --------H-59---------------------------------
  1258. INT 59 - IRQ1 relocated by DoubleDOS
  1259. SeeAlso: INT 09
  1260. --------b-59---------------------------------
  1261. INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
  1262. Desc:    all hardware interrupts on the TI Pro jump indirectly to the handler
  1263.       pointed at by this interrupt vector to finish their handling of
  1264.       the hardware interrupt
  1265. Notes:    the default handler decrements the interrupt count, restores registers
  1266.       (including the stack pointer), sends an EOI to the interrupt
  1267.       controller, and finally does an IRET
  1268.     can be used by multitaskers which need to get control on a regular
  1269.       basis
  1270. SeeAlso: INT 40"TI Professional",INT 47"TI Professional"
  1271. SeeAlso: INT 53"TI Professional"
  1272. --------V-59---------------------------------
  1273. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  1274.     DS:DX -> block of 5 array pointers
  1275. Return: CF set on error
  1276.         AX = error code
  1277.     CF clear if successful
  1278.         AX = return code
  1279. Note:    INT 59 is the means by which GSS*CGI language bindings communicate with
  1280.       GSS*CGI device drivers and the GSS*CGI device driver controller.
  1281.     also used by the IBM Graphic Development Toolkit
  1282. --------H-5A---------------------------------
  1283. INT 5A - IRQ10 relocated by DESQview 2.26+
  1284. Range:    INT 5A to INT FA, selected automatically
  1285. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1286. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 5B"DESQview",INT 72
  1287. --------H-5A---------------------------------
  1288. INT 5A - IRQ2 relocated by DoubleDOS
  1289. SeeAlso: INT 0A
  1290. --------N-5A---------------------------------
  1291. INT 5A - PC Cluster adapter BIOS entry address
  1292.     ???
  1293. Return: ???
  1294. SeeAlso: INT 5B"PC Cluster"
  1295. --------b-5A---------------------------------
  1296. INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK
  1297.     no details available
  1298. Note:    this interrupt is invoked on every fourth timer interrupt
  1299. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  1300. SeeAlso: INT 58"TI Professional"
  1301. --------H-5B---------------------------------
  1302. INT 5B - IRQ11 relocated by DESQview 2.26+
  1303. Range:    INT 5B to INT FB, selected automatically
  1304. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1305. SeeAlso: INT 50"DESQview",INT 5A"DESQview",INT 5C"DESQview",INT 73
  1306. --------H-5B---------------------------------
  1307. INT 5B - IRQ3 relocated by DoubleDOS
  1308. SeeAlso: INT 0B
  1309. --------N-5B---------------------------------
  1310. INT 5B - PC cluster adapter - RELOCATED INT 19
  1311. SeeAlso: INT 19,INT 5A"PC Cluster"
  1312. --------N-5B---------------------------------
  1313. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  1314.     ES:BX -> Network Control Block (see #2422)
  1315. Return: AL = status (see #2424)
  1316. SeeAlso: INT 5C
  1317.  
  1318. Format of Starlan Network Control Block:
  1319. Offset    Size    Description    (Table 2422)
  1320.  00h    BYTE    ncb_command (see also #2426)
  1321.         70h send net Break
  1322.  01h    BYTE    ncb_retcode
  1323.  02h    BYTE    ncb_lsn
  1324.  03h    BYTE    ncb_num
  1325.  04h    DWORD    -> ncb_buffer
  1326.  08h    WORD    ncb_length
  1327.  0Ah 16 BYTEs    ncb_callname
  1328.  1Ah 16 BYTEs    ncb_name
  1329.  2Ah    BYTE    ncb_rto
  1330.  2Bh    BYTE    ncb_sto
  1331.  2Ch    DWORD    -> ncb_post    /* int (far *ncb_post)(); */
  1332.  30h    BYTE    ncb_lana_num
  1333.  31h    BYTE    ncb_cmd_cplt
  1334.  32h    DWORD    -> ncb_vname
  1335.  36h    BYTE    ncb_vnamelen
  1336.  37h  9 BYTEs    ncb_reserve
  1337. Note:    fields 00h-31h are the same as for a standard NetBIOS NCB (see #2425)
  1338. --------N-5B---------------------------------
  1339. INT 5B - Microsoft Network Transport Layer Interface
  1340. Note:    used by MS-NET for executing network commands
  1341. SeeAlso: INT 5C"NetBIOS"
  1342. --------N-5B---------------------------------
  1343. INT 5B - used by Alloy NTNX
  1344. --------N-5B---------------------------------
  1345. INT 5B - ISOLAN Multi Protocol Software
  1346.     ES:BX -> Transfer Control Block (see #2423)
  1347. Return: AL = status
  1348. Note:    this software interface allows multiple protocols/software packages
  1349.       to access a BICC 411x network card
  1350.  
  1351. Format of ISOLAN Transfer Control Block:
  1352. Offset    Type    Description    (Table 2423)
  1353.  00h    BYTE    command code
  1354.         B3h Status
  1355.         F2h Activate
  1356.         F3h Deactivate
  1357.         F4h Send Data
  1358.  01h    BYTE    command identity
  1359.  02h    BYTE    virtual circuit ID
  1360.  03h    WORD    buffer length
  1361.  05h    DWORD    buffer pointer
  1362.  09h    BYTE    expedited data flag
  1363.  0Ah    BYTE    cancelable flag
  1364.  0Bh 16 BYTEs    local network address
  1365.  1Bh 16 BYTEs    remote network address
  1366.  2Bh    DWORD    asynchronous notification routine
  1367.  30h    DWORD    local network number
  1368.  34h    DWORD    remote network number
  1369.  38h    BYTE    call timeout
  1370.  39h    BYTE    not used
  1371.  3Ah  8 BYTEs    reserved
  1372.  42h    BYTE    command code extension
  1373.  43h    WORD    Blue Book MAC type
  1374. --------b-5B---------------------------------
  1375. INT 5B - TI Professional PC - KEYBOARD MAPPING HOOK
  1376.     no details available
  1377. Note:    used to remap the keyboard
  1378. SeeAlso: INT 15/AH=4Fh,INT 4A"TI Professional",INT 59"TI Professional"
  1379. SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional"
  1380. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  1381. --------U-5B5254DL04-------------------------
  1382. INT 5B U - SitBack v3.02R - GET ???
  1383.     AX = 5254h
  1384.     DL = 04h
  1385. Return: ES:BX -> ??? in resident portion
  1386. Program: SitBack is a background file backup utility by SitBack Technologies,
  1387.       Inc. which initiates backups whenever the system is idle
  1388. SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
  1389. --------U-5B8485DL70-------------------------
  1390. INT 5B U - SitBack v3.02R - INSTALLATION CHECK
  1391.     AX = 8485h
  1392.     DL = 70h
  1393. Return: CX = 8485h if installed
  1394.         DX:AX -> ??? (configuration data?)
  1395. Program: SitBack is a background file backup utility by SitBack Technologies,
  1396.       Inc. which initiates backups whenever the system is idle
  1397. SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
  1398. --------U-5B8485DL71-------------------------
  1399. INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
  1400.     AX = 8485h
  1401.     DL = 71h
  1402. Return: ES:BX -> FAR entry point to ???
  1403. Note:    the flag which is modified is located at the address returned by
  1404.        AX=5254h/DL=04h
  1405. SeeAlso: AX=8485h/DL=72h
  1406. --------U-5B8485DL72-------------------------
  1407. INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
  1408.     AX = 8485h
  1409.     DL = 72h
  1410. Note:    the flag which is modified is located at the address returned by
  1411.        AX=5254h/DL=04h
  1412. SeeAlso: AX=8485h/DL=71h
  1413. --------U-5B8485DL73-------------------------
  1414. INT 5B U - SitBack v3.02R - ???
  1415.     AX = 8485h
  1416.     DL = 73h
  1417.     ???
  1418. Return: ???
  1419. --------U-5B8485DL74-------------------------
  1420. INT 5B U - SitBack v3.02R - ???
  1421.     AX = 8485h
  1422.     DL = 74h
  1423.     ???
  1424. Return: ???
  1425. --------U-5B8485DL75-------------------------
  1426. INT 5B U - SitBack v3.02R - ???
  1427.     AX = 8485h
  1428.     DL = 75h
  1429.     CX = ???
  1430. Return: ???
  1431. SeeAlso: AX=8485h/DL=76h
  1432. --------U-5B8485DL76-------------------------
  1433. INT 5B U - SitBack v3.02R - ???
  1434.     AX = 8485h
  1435.     DL = 76h
  1436.     CX = ???
  1437. Return: ???
  1438. Note:    conditionally calls the code for AX=8485h/DL=75h
  1439. SeeAlso: AX=8485h/DL=75h
  1440. --------U-5B8485DL77-------------------------
  1441. INT 5B U - SitBack v3.02R - SET ??? FLAG
  1442.     AX = 8485h
  1443.     DL = 77h
  1444. --------U-5B8485DL78-------------------------
  1445. INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
  1446.     AX = 8485h
  1447.     DL = 78h
  1448. Return: CX = 5342h if supported
  1449.         ES = AX = segment of TSR data
  1450. SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
  1451. --------U-5B8485DL79-------------------------
  1452. INT 5B U - SitBack v3.02R - GET DTA
  1453.     AX = 8485h
  1454.     DL = 79h
  1455. Return: CX = 5342h if supported
  1456.         ES:BX -> DTA set by last INT 21/AH=1Ah
  1457. Note:    this function is provided by SBOS.EXE rather than SB.EXE
  1458. SeeAlso: INT 21/AH=1Ah
  1459. --------U-5B8485DL7A-------------------------
  1460. INT 5B U - SitBack v3.02R - TOGGLE ???
  1461.     AX = 8485h
  1462.     DL = 7Ah
  1463. Return: CX = 5342h if supported
  1464.         AL = new value of ??? (00h or 01h)
  1465. --------H-5C---------------------------------
  1466. INT 5C - IRQ12 relocated by DESQview 2.26+
  1467. Range:    INT 5C to INT FC, selected automatically
  1468. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1469. SeeAlso: INT 50"DESQview",INT 5B"DESQview",INT 5D"DESQview",INT 74
  1470. --------H-5C---------------------------------
  1471. INT 5C - IRQ4 relocated by DoubleDOS
  1472. SeeAlso: INT 0C
  1473. --------N-5C---------------------------------
  1474. INT 5C - NetBIOS INTERFACE
  1475.     ES:BX -> network control block (NCB) (see #2425)
  1476. Return: AL = status (see #2424)
  1477. Program: NetBIOS was developed by Sytek, Inc. in 1984 as a high-level
  1478.       programming interface to the IBM PC Network; the first implementation
  1479.       was a ROM BIOS extension on Sytek's PCnet LAN adapter card, but many
  1480.       current networks support NetBIOS as the session layer.
  1481. Note:    The Sytek PCnet card uses DMA 3.
  1482. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B
  1483.  
  1484. (Table 2424)
  1485. Values for NetBIOS status:
  1486.  00h    successful
  1487.  01h    bad buffer size
  1488.  03h    invalid NETBIOS command
  1489.  05h    timeout
  1490.  06h    receive buffer too small
  1491.  07h    No-ACK command failed
  1492.  08h    bad session number
  1493.  09h    LAN card out of memory
  1494.  0Ah    session closed
  1495.  0Bh    command has been cancelled
  1496.  0Dh    name already exists
  1497.  0Eh    local name table full
  1498.  0Fh    name still in use, can't delete
  1499.  11h    local session table full
  1500.  12h    remote PC not listening
  1501.  13h    bad NCB_NUM field
  1502.  14h    no answer to CALL or no such remote
  1503.  15h    name not in local name table
  1504.  16h    duplicate name
  1505.  17h    bad delete
  1506.  18h    abnormal end
  1507.  19h    name error, multiple identical names in use
  1508.  1Ah    bad packet
  1509.  21h    network card busy
  1510.  22h    too many commands queued
  1511.  23h    bad LAN card number
  1512.  24h    command finished while cancelling
  1513.  26h    command can't be cancelled
  1514.  30h    name defined by another process (OS/2)
  1515.  34h    NetBIOS environment not defined, must issue reset (OS/2)
  1516.  35h    required operating system resources exhausted (OS/2)
  1517.  36h    maximum applications exceeded (OS/2)
  1518.  37h    no SAPs available for NetBIOS (OS/2)
  1519.  38h    requested resources not available (OS/2)
  1520.  40h    Lana System Error
  1521.  41h    Lana Remote Hot Carrier
  1522.  42h    Lana Local Hot Carrier
  1523.  43h    Lana No Carrier Detected
  1524.  44h    unusual network condition
  1525.  45h-4Dh hardware error
  1526.  4Eh    token ring is broken
  1527.  4Fh    token ring error
  1528.  50h    adapter malfunction
  1529.  F7h    error in explicit INITIALIZE
  1530.  F8h    error in implicit OPEN
  1531.  F9h    TOKREUI internal error
  1532.  FAh    hardware adapter testing
  1533.  FBh    NetBIOS emulator not found
  1534.  FCh    OPEN or OPEN_SAP failure
  1535.  FDh    unexpected adapter closure
  1536.  FFh    NetBIOS busy (command pending)
  1537.  
  1538. Format of NetBIOS Network Control Block:
  1539. Offset    Size    Description    (Table 2425)
  1540.  00h    BYTE    command code (see #2426)
  1541.  01h    BYTE    return code (see #2424)
  1542.  02h    BYTE    local session number (LSN)
  1543.  03h    BYTE    "ncb_num" datagram table entry from ADD NAME
  1544.  04h    DWORD    -> I/O buffer
  1545.  08h    WORD    length of data in buffer
  1546.  0Ah 16 BYTEs    remote system to call
  1547.  1Ah 16 BYTEs    network name of local machine
  1548.  2Ah    BYTE    receive timeout in 1/2 seconds
  1549.  2Bh    BYTE    send timeout in 1/2 seconds
  1550.  2Ch    DWORD    -> FAR post handler    /* int (far *ncb_post)(); */
  1551.  30h    BYTE    network adapter number on which to execute command
  1552.         00h-03h IBM NetBIOS specs
  1553.         F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  1554.  31h    BYTE    command completion code (see returned status above)
  1555.  32h 14 BYTEs    reserved for network card
  1556.  
  1557. (Table 2426)
  1558. Values for NetBIOS command code field in NCB:
  1559.  10h    start session with NCB_NAME name (call)
  1560.  11h    listen for call
  1561.  12h    end session with NCB_NAME name (hangup)
  1562.  14h    send data via NCB_LSN
  1563.  15h    receive data from a session
  1564.  16h    receive data from any session
  1565.  17h    send multiple data buffers
  1566.  20h    send unACKed message (datagram)
  1567.  21h    receive datagram
  1568.  22h    send broadcast datagram
  1569.  23h    receive broadcast datagram
  1570.  30h    add name to name table
  1571.  31h    delete name from name table
  1572.  32h    reset adapter card and tables
  1573.  33h    get adapter status (see #2427)
  1574.  34h    status of all sessions for name (see #2429)
  1575.  35h    cancel
  1576.  36h    add group name to name table
  1577.  48h    send data and receive data (LAN Manager NETBEUI.DOS)
  1578.  70h    unlink from IBM remote program (no F0h function)
  1579.  71h    send data without ACK
  1580.  72h    send multiple buffers without ACK
  1581.  72h    UngermannBass Register (conflicts with above function)
  1582.  73h    UngermannBass SendNmc
  1583.  74h    UngermannBass Callniu
  1584.  75h    UngermannBass Calladdr
  1585.  76h    UngermannBass Listenaddr
  1586.  77h    UngermannBass SendPkt
  1587.  78h    find name
  1588.  78h    UngermannBass RcvPkt (conflicts with above function)
  1589.  79h    token-ring protocol trace
  1590.  79h    UngermannBass SendAttn (conflicts with above function)
  1591.  7Ah    UngermannBass RcvAttn
  1592.  7Bh    UngermannBass Listenniu
  1593.  7Ch    UngermannBass RcvRaw
  1594.  7Dh    UngermannBass SendNmc2
  1595.  7Fh    Beame&Whiteside BWNB installation check (returns with return code and
  1596.       completion code both set to 03h, while invalid functions return only
  1597.       return code field set to 03h)
  1598. Note:    OR any of the above except 70h with 80h for non-waiting call
  1599.  
  1600. Format of NetBIOS structure "astatus":
  1601. Offset    Size    Description    (Table 2427)
  1602.  00h  6 BYTEs as_id
  1603.  06h    BYTE  as_jumpers
  1604.  07h    BYTE  as_post
  1605.  08h    BYTE  as_major
  1606.  09h    BYTE  as_minor
  1607.  0Ah    WORD  as_interval
  1608.  0Ch    WORD  as_crcerr
  1609.  0Eh    WORD  as_algerr
  1610.  10h    WORD  as_colerr
  1611.  12h    WORD  as_abterr
  1612.  14h    DWORD as_tcount
  1613.  18h    DWORD as_rcount
  1614.  1Ch    WORD  as_retran
  1615.  1Eh    WORD  as_xresrc
  1616.  20h  8 BYTEs as_res0
  1617.  28h    WORD  as_ncbfree
  1618.  2Ah    WORD  as_ncbmax
  1619.  2Ch    WORD  as_ncbx
  1620.  2Eh  4 BYTEs as_res1
  1621.  32h    WORD  as_sespend
  1622.  34h    WORD  as_msp
  1623.  36h    WORD  as_sesmax
  1624.  38h    WORD  as_bufsize
  1625.  3Ah    WORD  as_names
  1626.  3Ch 16 name structures     as_name (see #2428)
  1627.  
  1628. Format of NetBIOS structure "name":
  1629. Offset    Size    Description    (Table 2428)
  1630.  00h 16 BYTEs "nm_name" symbolic name
  1631.  10h    BYTE  "nm_num" number associated with name
  1632.  11h    BYTE  nm_status
  1633.  
  1634. Format of NetBIOS structure "sstatus":
  1635. Offset    Size    Description    (Table 2429)
  1636.  00h    BYTE    number of sessions being reported
  1637.  01h    BYTE    number of sessions with this name
  1638.  02h    BYTE    number of outstanding receive datagrams
  1639.  03h    BYTE    number of outstanding ReceiveAnys
  1640.  04h    var    session structures (see #2430)
  1641.  
  1642. Format of NetBIOS structure "session":
  1643. Offset    Size    Description    (Table 2430)
  1644.  00h    BYTE    local session number
  1645.  01h    BYTE    state
  1646.         01h listen pending
  1647.         02h call pending
  1648.         03h session established
  1649.         04h hangup pending
  1650.         05h hangup done
  1651.         06h session aborted
  1652.  02h 16 BYTEs    local name
  1653.  12h 16 BYTEs    remote name
  1654.  22h    BYTE    number of outstanding receives
  1655.  23h    BYTE    number of outstanding sends/chainsends
  1656. --------N-5C---------------------------------
  1657. INT 5C - TOPS INTERFACE
  1658.     ES:BX -> Network Control Block
  1659. Note:    TOPS card uses DMA 1, 3 or none.
  1660. --------N-5C---------------------------------
  1661. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  1662.     DX:BX -> control block (see #2432)
  1663. Return: none
  1664. Range:    INT 5Ch to INT 70h
  1665. Notes:    the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  1666.       handler; this serves as the installation check
  1667. Index:    installation check;ATALK.SYS|installation check;AppleTalk interface
  1668.  
  1669. (Table 2431)
  1670. Values for ATALK.SYS command code:
  1671.  01h    "AT_INIT"        initialize the driver
  1672.  02h    "AT_KILL"
  1673.  03h    "AT_GETNETINFO" get current network info incl init status
  1674.  04h    "AT_GETCLOCKTICKS"
  1675.  05h    "AT_STARTTIMER"
  1676.  06h    "AT_RESETTIMER"
  1677.  07h    "AT_CANCELTIMER"
  1678.  10h    "LAP_INSTALL"
  1679.  11h    "LAP_REMOVE"
  1680.  12h    "LAP_WRITE"
  1681.  13h    "LAP_READ"
  1682.  14h    "LAP_CANCEL"
  1683.  20h    "DDP_OPENSOCKET"
  1684.  21h    "DDP_CLOSESOCKET"
  1685.  22h    "DDP_WRITE"
  1686.  23h    "DDP_READ"
  1687.  24h    "DDP_CANCEL"
  1688.  30h    "NBP_REGISTER"
  1689.  31h    "NBP_REMOVE"
  1690.  32h    "NBP_LOOKUP"
  1691.  33h    "NBP_CONFIRM"
  1692.  34h    "NBP_CANCEL"
  1693.  35h    "ZIP_GETZONELIST"
  1694.  36h    "ZIP_GETMYZONE"
  1695.  37h    "ZIP_TAKEDOWN"
  1696.  38h    "ZIP_BRINGUP"
  1697.  40h    "ATP_OPENSOCKET"
  1698.  41h    "ATP_CLOSESOCKET"
  1699.  42h    "ATP_SENDREQUEST"
  1700.  43h    "ATP_GETREQUEST"
  1701.  44h    "ATP_SENDRESPONSE"
  1702.  45h    "ATP_ADDRESPONSE"
  1703.  46h    "ATP_CANCELTRANS"
  1704.  47h    "ATP_CANCELRESPONSE"
  1705.  48h    "ATP_CANCELREQUEST"
  1706.  50h    "ASP_GETPARMS"
  1707.  51h    "ASP_CLOSESESSION"
  1708.  52h    "ASP_CANCEL"
  1709.  53h    "ASP_INIT"
  1710.  54h    "ASP_KILL"
  1711.  55h    "ASP_GETSESSION"
  1712.  56h    "ASP_GETREQUEST"
  1713.  57h    "ASP_CMDREPLY"
  1714.  58h    "ASP_WRTCONTINUE"
  1715.  59h    "ASP_WRTREPLY"
  1716.  5Ah    "ASP_CLOSEREPLY"
  1717.  5Bh    "ASP_NEWSTATUS"
  1718.  5Ch    "ASP_ATTENTION"
  1719.  5Dh    "ASP_GETSTATUS"
  1720.  5Eh    "ASP_OPENSESSION"
  1721.  5Fh    "ASP_COMMAND"
  1722.  60h    "ASP_WRITE"
  1723.  61h    "ASP_GETATTENTION"
  1724.  70h    "PAP_OPEN"
  1725.  71h    "PAP_CLOSE"
  1726.  72h    "PAP_READ"
  1727.  73h    "PAP_WRITE"
  1728.  74h    "PAP_STATUS"
  1729.  75h    "PAP_REGNAME"
  1730.  76h    "PAP_REMNAME"
  1731.  77h    "PAP_INIT"
  1732.  78h    "PAP_NEWSTATUS"
  1733.  79h    "PAP_GETNEXTJOB"
  1734.  7Ah    "PAP_KILL"
  1735.  7Bh    "PAP_CANCEL"
  1736.  
  1737. Format of AppleTalk control block:
  1738. Offset    Size    Description    (Table 2432)
  1739.  00h    WORD    command code (see #2431)
  1740.         OR with the following flags
  1741.         8000h start command then return
  1742.         4000h wait for interrupt service to complete
  1743.  02h    WORD    returned status
  1744.         0000h success (already initialized if func 01h)
  1745.  04h    DWORD    pointer to completion function
  1746.  08h    WORD    network number
  1747.  0Ah    BYTE    node ID
  1748. ---if general func (01h,03h), control block continues:
  1749.  0Bh    BYTE    "inf_abridge"
  1750.  0Ch    WORD    "inf_config"
  1751.  0Eh    DWORD    pointer to buffer
  1752.  12h    WORD    buffer size
  1753. ---if DDP function (20h-24h), control block continues:
  1754.  0Bh    BYTE    "ddp_addr_socket"
  1755.  0Ch    BYTE    "ddp_socket"
  1756.  0Dh    BYTE    "ddp_type"
  1757.  0Eh    DWORD    pointer to buffer
  1758.  12h    WORD    buffer size
  1759.  14h    BYTE    "ddp_chksum"
  1760. ---if Name Binding Protocol (30h-34h), control block continues:
  1761.  0Bh    BYTE    "nbp_addr_socket"
  1762.  0Ch    WORD    "nbp_toget"
  1763.  0Eh    DWORD    pointer to buffer (see #2433)
  1764.  12h    WORD    buffer size
  1765.  14h    BYTE    "nbp_interval"
  1766.  15h    BYTE    "nbp_retry"
  1767.  16h    DWORD    "nbp_entptr"
  1768. ---if AppleTalk Transaction Protocol (42h), control block continues:
  1769.  0Bh    BYTE    "atp_addr_socket"
  1770.  0Ch    WORD    "atp_socket"
  1771.  0Eh    DWORD    pointer to buffer
  1772.  12h    WORD    buffer size
  1773.  14h    BYTE    "atp_interval"
  1774.  15h    BYTE    "atp_retry"
  1775.  16h    BYTE    ATP flags
  1776.         bit 5: exactly one transaction
  1777.  17h    BYTE    "atp_seqbit"
  1778.  18h    BYTE    transaction ID
  1779.  19h  4 BYTEs    ATP user bytes
  1780.  1Dh    BYTE    number of BDS buffers
  1781.  1Eh    BYTE    number of BDS responses
  1782.  1Fh    DWORD    pointer to BDS buffers (see #2434)
  1783.  
  1784. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  1785. Offset    Size    Description    (Table 2433)
  1786.  00h    WORD    "tup_address_network"
  1787.  02h    BYTE    "tup_address_notid"
  1788.  03h    BYTE    "tup_address_socket"
  1789.  04h    BYTE    "tup_enum"
  1790.  05h 99 BYTEs    name
  1791.  
  1792. Format of BDS entries:
  1793. Offset    Size    Description    (Table 2434)
  1794.  00h    DWORD    pointer to buffer
  1795.  04h    WORD    size of buffer
  1796.  06h    WORD    BDS data size
  1797.  08h  4 BYTEs    "bds_userbytes"
  1798. --------N-5C---------------------------------
  1799. INT 5C - IBM 802.2 INTERFACE (LLC)
  1800.     ES:BX -> CCB (see #2435)
  1801. Return: none
  1802.  
  1803. Format of IBM 802.2 CCB:
  1804. Offset    Size    Description    (Table 2435)
  1805.  00h    BYTE    adapter
  1806.  01h    BYTE    command code
  1807.  02h    BYTE    return code
  1808.  03h    BYTE    work
  1809.  04h    DWORD    pointer to ???
  1810.  08h    DWORD    pointer to completion function???
  1811.  0Ch    DWORD    pointer to parameters???
  1812. --------b-5C---------------------------------
  1813. INT 5C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
  1814. Desc:    toggle a pause flag which is checked by the CRT Device Service Routine
  1815.       (see INT 49"TI Professional") and causes it to temporarily halt the
  1816.       machine on the next video-related function (until a key is pressed)
  1817. SeeAlso: INT 09"IRQ1",INT 4A"TI Professional",INT 59"TI Professional"
  1818. SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional"
  1819. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  1820. --------N-5C---------------------------------
  1821. INT 5C - $25 LAN - INSTALLATION CHECK
  1822. Notes:    current versions only check whether the vector is 0000h:0000h or not
  1823.     future versions are supposed to have the signature "NET" in the three
  1824.       bytes preceding the INT 5C handler
  1825. --------N-5C04-------------------------------
  1826. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  1827.     AH = 04h
  1828.     AL = COM port (0 = default)
  1829.     CX = wait count in character times (should be at least 100)
  1830. Return: ZF set if link alive
  1831. --------H-5D---------------------------------
  1832. INT 5D - IRQ13 relocated by DESQview 2.26+
  1833. Range:    INT 5D to INT FD, selected automatically
  1834. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1835. SeeAlso: INT 50"DESQview",INT 5C"DESQview",INT 5E"DESQview",INT 75
  1836. --------H-5D---------------------------------
  1837. INT 5D - IRQ5 relocated by DoubleDOS
  1838. SeeAlso: INT 0D,INT 5C"DoubleDOS"
  1839. --------b-5D---------------------------------
  1840. INT 5D - TI Professional PC - KEYBOARD BREAK KEY VECTOR
  1841.     no details available
  1842. SeeAlso: INT 09"IRQ1",INT 4A"TI Professional",INT 59"TI Professional"
  1843. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  1844. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  1845. --------H-5E---------------------------------
  1846. INT 5E - IRQ14 relocated by DESQview 2.26+
  1847. Range:    INT 5E to INT FE, selected automatically
  1848. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1849. SeeAlso: INT 50"DESQview",INT 5D"DESQview",INT 5F"DESQview",INT 76
  1850. --------H-5E---------------------------------
  1851. INT 5E - IRQ6 relocated by DoubleDOS
  1852. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  1853. --------b-5E---------------------------------
  1854. INT 5E - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
  1855. Desc:    dump the screen to the printer
  1856. Notes:    hooked by TI MS-DOS, which provides a PRTSCRN character device which
  1857.       can invoke screen prints when a decimal digit (indicating the type
  1858.       of screen dump) is written to it
  1859.     the TI MS-DOS print-screen routine allows selective dumps of text
  1860.       only, graphics only, or text and graphics superimposed, in either
  1861.       normal or reverse, by pressing the appropriate keystroke combination:
  1862.       Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print,
  1863.       or Shift-Ctrl-Print.
  1864.     the BIOS default routine for this vector is an IRET
  1865. SeeAlso: INT 05,INT 4A"TI Professional",INT 59"TI Professional"
  1866. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  1867. SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"
  1868. --------H-5F---------------------------------
  1869. INT 5F - IRQ15 relocated by DESQview 2.26+
  1870. Range:    INT 5F to INT FF, selected automatically
  1871. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  1872. SeeAlso: INT 50"DESQview",INT 5E"DESQview",INT 77
  1873. --------H-5F---------------------------------
  1874. INT 5F - IRQ7 relocated by DoubleDOS
  1875. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  1876. --------b-5F---------------------------------
  1877. INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
  1878. Desc:    hook for multitaskers to be informed when a keypress is placed in the
  1879.       keyboard buffer
  1880. SeeAlso: INT 09,INT 4A"TI Professional",INT 59"TI Professional"
  1881. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  1882. SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"
  1883. --------b-5F00-------------------------------
  1884. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  1885.     AH = 00h
  1886.     AL = video mode
  1887.         03h text,CGA color (100LX/200LX)
  1888.         06h 640x200 CGA graphics (100LX/200LX)
  1889.         07h text, system manager compliant
  1890.         20h 240x128 mono graphics, system manager compliant
  1891.         87h text, not system manager compliant
  1892.         A0h 240x128 mono graphics, not system manager compliant
  1893. Notes:    the defaults after setting the mode to graphics are (0,0) logical
  1894.       origin, full-screen clip region, (0,0) pen location, pen color 1,
  1895.       pixel replacement FORCE, line type and fill mask all bits set
  1896.     modes 03h and 06h can also be set with the standard INT 10/AH=00h
  1897. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  1898. --------b-5F01-------------------------------
  1899. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK
  1900.     AH = 01h
  1901.     ES:DI -> 8-byte fill mask
  1902. Note:    the fill mask represents an 8x8 pixel box and is repeated as necessary
  1903.       when drawing filled rectangles; it is always aligned with the byte
  1904.       boundaries of video memory, regardless of the actual boundaries of
  1905.       the rectangle
  1906. SeeAlso: AH=02h
  1907. --------b-5F02-------------------------------
  1908. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO
  1909.     AH = 02h
  1910.     ES:DI -> graphics info record (see #2436)
  1911. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  1912.  
  1913. Format of HP 95LX graphics info record:
  1914. Offset    Size    Description    (Table 2436)
  1915.  00h    BYTE    current video mode
  1916.  01h    BYTE    default video mode
  1917.  02h    WORD    display width in pixels
  1918.  04h    WORD    display height in pixels
  1919.  06h    WORD    current pen column
  1920.  08h    WORD    current pen row
  1921.  0Ah    WORD    current line type
  1922.  0Ch    WORD    current replacement rule
  1923.  0Eh    WORD    current pen color
  1924.  10h    WORD    current leftmost column of clip region
  1925.  12h    WORD    current rightmost column of clip region
  1926.  14h    WORD    current topmost row of clip region
  1927.  16h    WORD    current bottommost row of clip region
  1928.  18h    WORD    current column of logical origin
  1929.  1Ah    WORD    current row of logical origin
  1930.  1Ch  8 BYTEs    current fill mask
  1931. --------b-5F03-------------------------------
  1932. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  1933.     AH = 03h
  1934.     CX = column
  1935.     DX = row
  1936. SeeAlso: AH=04h
  1937. --------b-5F04-------------------------------
  1938. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION
  1939.     AH = 04h
  1940.     CX = left-most column
  1941.     DX = top-most row
  1942.     SI = right-most column
  1943.     DI = bottom-most row
  1944. SeeAlso: AH=03h
  1945. --------b-5F05-------------------------------
  1946. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  1947.     AH = 05h
  1948.     AL = fill type
  1949.         00h outline, using current line type and color
  1950.         01h solid, using current color
  1951.         02h pattern, using current fill mask and color
  1952.     DX,CX = row,column of other corner of rectangle
  1953. Note:    the rectangle is drawn starting at the current pen position
  1954. SeeAlso: AH=01h,AH=06h,AH=07h
  1955. --------b-5F06-------------------------------
  1956. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE
  1957.     AH = 06h
  1958.     DX,CX = row,column of end point
  1959. Note:    the line is drawn starting at the current pen position
  1960. SeeAlso: AH=05h,AH=07h
  1961. --------b-5F07-------------------------------
  1962. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT
  1963.     AH = 07h
  1964.     DX,CX = row,column of point
  1965. Note:    also sets pen position to the specified point
  1966. SeeAlso: AH=06h,AH=08h,AH=0Ch
  1967. --------b-5F08-------------------------------
  1968. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN
  1969.     AH = 08h
  1970.     DX,CX = row,column of new pen position
  1971. SeeAlso: AH=07h,AH=09h
  1972. --------b-5F09-------------------------------
  1973. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR
  1974.     AH = 09h
  1975.     AL = new color (00h = white, 01h = black)
  1976. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  1977. --------b-5F0A-------------------------------
  1978. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  1979.     AH = 0Ah
  1980.     AL = new replacement rule
  1981.         00h force
  1982.         01h AND
  1983.         02h OR
  1984.         03h XOR
  1985.         ---100LX/200LX---
  1986.         04h InvForce
  1987.         05h InvAND
  1988.         06h    InvOR
  1989.         07h InvXOR
  1990.         08h Txt
  1991. SeeAlso: AH=01h,AH=09h,AH=0Bh
  1992. --------b-5F0B-------------------------------
  1993. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE
  1994.     AH = 0Bh
  1995.     CX = new line type
  1996. Note:    the line type specifies 16 bits which are repeated over and over while
  1997.       drawing the pixels of a line
  1998. SeeAlso: AH=09h,AH=0Ah
  1999. --------b-5F0C-------------------------------
  2000. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL
  2001.     AH = 0Ch
  2002.     DX,CX = row,column of pixel to read
  2003. Return: AX = pixel color
  2004. SeeAlso: AH=07h
  2005. --------b-5F0D-------------------------------
  2006. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE
  2007.     AH = 0Dh
  2008.     DX,CX = row,column of first corner
  2009.     BP,SI = row,column of second corner
  2010.     ES:DI -> image buffer (see #2437)
  2011. Note:    the specified corners are included in the saved image
  2012. SeeAlso: AH=0Eh
  2013.  
  2014. Format of HP 95LX image buffer:
  2015. Offset    Size    Description    (Table 2437)
  2016.  00h    WORD    number of planes (always 01h on HP 95LX)
  2017.  02h    WORD    number of bits/pixel (always 01h on HP 95LX)
  2018.  04h    WORD    image width in pixels
  2019.  06h    WORD    image height in pixels
  2020.  08h  N BYTEs    image data
  2021.         requires (WIDTH+7)/8 * HEIGHT bytes
  2022. --------b-5F0E-------------------------------
  2023. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE
  2024.     AH = 0Eh
  2025.     AL = replacement rule (see #2438)
  2026.     DX,CX = row,column of top left corner
  2027.     ES:DI -> image buffer (see #2437)
  2028. Note:    if the specified image does not fit completely on the screen, this call
  2029.       does nothing
  2030. SeeAlso: AH=0Dh
  2031.  
  2032. Bitfields for replacement rule:
  2033. Bit(s)    Description    (Table 2438)
  2034.  2    invert image before applying rule
  2035.  1-0    function (00 force, 01 AND, 10 OR, 11 XOR)
  2036. --------b-5F0F-------------------------------
  2037. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT
  2038.     AH = 0Fh
  2039.     AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  2040.     DX,CX = row,column of first character's top left corner
  2041.     ES:DI -> ASCIZ text
  2042. --------b-5F10-------------------------------
  2043. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER
  2044.     AH = 10h
  2045.     CX = font size of desired font
  2046.         0808h  8x8    small  (80x25 text)
  2047.         0A0Bh 11x10 medium (64x18 text)
  2048.         100Ch 12x16 large  (40x16 text)
  2049. Return: DX:AX -> ptr to font or 0000h:fontID# if built-in font
  2050. SeeAlso: AH=11h
  2051. --------b-5F11-------------------------------
  2052. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT
  2053.     AH = 11h
  2054.     ES:DI -> ptr to font or 0000h:fontID# for built-in font
  2055. Note:    this function should be called immediately after AH=10h with the
  2056.       pointer supplied by that call
  2057. SeeAlso: AH=10h
  2058. --------*-60---------------------------------
  2059. INT 60 - reserved for user interrupt
  2060. --------v-60---------------------------------
  2061. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  2062. Desc:    The "Zero Bug" virus hooks this vector.     It considers itself installed
  2063.       if offset 103h of the handler's segment contains the bytes "ZE"
  2064. SeeAlso: INT 32,INT 44"VIRUS",INT 61"SEMTEX"
  2065. --------d-60---------------------------------
  2066. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  2067. SeeAlso: INT 41,INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec",INT 64"Adaptec"
  2068. SeeAlso: INT C0"AMI",#0598
  2069. Notes:    this vector stores the first four bytes of the parameter table for
  2070.       hard disk 0
  2071.     these vectors are used by the following Adaptec controllers:
  2072.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  2073.     these vectors are NOT used by the following Adaptec controllers:
  2074.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  2075. --------b-60---------------------------------
  2076. INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
  2077. Desc:    the low word of this vector contains the segment of the RAM data area
  2078.       to be used by the system ROM at F400h:A000h, and the high word
  2079.       contains the length of the data area (see #2439)
  2080. SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
  2081.  
  2082. Format of TI Professional System ROM data area:
  2083. Offset    Size    Description    (Table 2439)
  2084.  00h    BYTE    port 00h shadow
  2085.  01h    BYTE    port 03h shadow
  2086.  02h    BYTE    port 04h shadow
  2087.  03h    WORD    system configuration word (see #2440)
  2088.  05h    BYTE    25ms count
  2089.  06h    WORD    offset of timing event 1 (0008h)
  2090.  08h    WORD    (event 1) offset of timing event 2 (0010h)
  2091.  0Ah    BYTE    (event 1) unused (FFh)
  2092.  0Bh    BYTE    (event 1) active flag (00h = off, 80h = on)
  2093.  0Ch    WORD    (event 1) count-down until end of event
  2094.  0Eh    WORD    (event 1) event routine (in segment F400h) to call at timeout
  2095.  10h    WORD    (event 2) offset of timing event 3 (0018h)
  2096.  12h    BYTE    (event 2) unused (FFh)
  2097.  13h    BYTE    (event 2) active flag (00h = off, 80h = on)
  2098.  14h    WORD    (event 2) count-down until end of event
  2099.  16h    WORD    (event 2) event routine (in segment F400h) to call at timeout
  2100.  18h    ...
  2101. Note:    timing event 1 is the disk I/O timeout, and event 2 is the floppy disk
  2102.       motor timeout
  2103.  
  2104. Bitfields for TI Professional System Configuration Word:
  2105. Bit(s)    Description    (Table 2440)
  2106.  0    drive A: installed
  2107.  1    drive B: installed
  2108.  2    drive C: installed
  2109.  3    drive D: installed
  2110.  4    drive A: is 80-track
  2111.  5    drive A: is double-sided
  2112.  6    60-Hz (USA,etc.) system instead of 50-Hz (Europe)
  2113.  7    hard disk installed
  2114.  8    serial port 1 installed
  2115.  9    serial port 2 installed
  2116.  10    serial port 3 installed
  2117.  11    serial port 4 installed
  2118.  14-12    installed graphics planes
  2119.     000 none
  2120.     001 plane A
  2121.     111 planes A, B, and C
  2122.  15    clock installed
  2123. SeeAlso: #2439
  2124. --------b-60---------------------------------
  2125. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  2126. Desc:    supplies a number of subfunctions which perform such functions as
  2127.       drawing boxes and menus, and provide input line editing
  2128. SeeAlso: INT 61"Atari"
  2129. --------V-60---------------------------------
  2130. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  2131. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  2132. Range:    INT 60 to INT 66, selected by searching for first free vector
  2133. Note:    the Nabbit installation check consists of testing whether the
  2134.       interrupt vector points at the ASCIZ signature string "iG"
  2135.       (69h 47h 00h)
  2136. --------V-60---------------------------------
  2137. INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  2138. Program: Buffit is a shareware scrollback utility by D.T. Hamilton
  2139. Range:    INT 60 to INT 6F, selected by searching for first free vector
  2140. Notes:    the Buffit installation check consists of testing whether the
  2141.       interrupt vector points at the ASCII signature "Buffit  "
  2142.     there is a private entry point (see #2441) immediately following the
  2143.       signature string, i.e. eight bytes beyond the address pointed at
  2144.       by the interrupt vector
  2145.  
  2146. (Table 2441)
  2147. Call Buffit private entry point with:
  2148.     AH = function
  2149.         00h get information and hotkey state
  2150.         01h get information and toggle hotkey state
  2151. Return: AH = new hotkey state (00h enabled, 01h disabled)
  2152.     AL = hotkey scan code (see #0005)
  2153.     BH = hotkey shift states
  2154.     BL = ??? (01h)
  2155.     CX = segment of resident code
  2156.     DH = interrupt number used for signature pointer
  2157.     DL = ??? (00h)
  2158.     SI = INT 09 handler offset
  2159.     DI = INT 21 handler offset
  2160. Index:    hotkeys;Buffit
  2161. --------r-60---------------------------------
  2162. INT 60 - PC-IPC API
  2163.     STACK:    DWORD    pointer to parameter block (see #2442)
  2164. Return: STACK:    unchanged
  2165. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  2166.       allows communication between independent programs
  2167. Range:    INT 00 to INT FF, selected by commandline switch
  2168.  
  2169. Format of PC-IPC parameter block:
  2170. Offset    Size    Description    (Table 2442)
  2171.  00h    WORD    caller's ID
  2172.  02h    WORD    to ID
  2173.  04h    WORD    command code (see #2443)
  2174.  06h    WORD    returned status (see #2444)
  2175.  08h    WORD    returned error code (see #2445)
  2176.  0Ah    WORD    size of data
  2177.  0Ch    DWORD    pointer to data buffer
  2178.  
  2179. (Table 2443)
  2180. Values for PC-IPC command code:
  2181.  01h "IPC_CMND_INQUIRE"     inquire current status
  2182.     set status field, writes WORD to data buffer containing free
  2183.       message space in bytes, and sets the "size" field to the
  2184.       number of messages waiting
  2185.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  2186.     ignored unless called with the same ID that disabled PC-IPC
  2187.  03h "IPC_CMND_DISABLE" disable PC-IPC
  2188.  04h "IPC_CMND_INSTALL" reset PC-IPC
  2189.  06h "IPC_CMND_RDATA"    read data
  2190.     returns first message in data buffer, sets "size" to message length
  2191.       and "to ID" field to sender's ID
  2192.     if no messages available, bit 4 of status is cleared and "size" is
  2193.       set to zero
  2194.  07h "IPC_CMND_SDATA"    send data
  2195.  08h "IPC_CMND_REQID"    require user ID
  2196.     create a new recognized ID and return in "caller's ID" field
  2197.  09h "IPC_CMND_DELID"    cancel user ID
  2198.     delete caller's ID from pool of recognized IDs
  2199.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  2200.  0Bh "IPC_CMND_VERS"    get PC-IPC version
  2201.     string representing version returned in data buffer, "size" field
  2202.       set to length of string
  2203.  
  2204. Bitfields for returned status:
  2205. Bit(s)    Description    (Table 2444)
  2206.  0    unused
  2207.  1    IPC enabled
  2208.  2    IPC installed
  2209.  3    error
  2210.  4    message(s) available
  2211.  
  2212. (Table 2445)
  2213. Values for PC-IPC error code:
  2214.  00h    no error
  2215.  01h    invalid command or parameter
  2216.  02h    only process 0 can install/reset IPC
  2217.  03h    process can not install/reset IPC
  2218.  04h    IPC is not enabled
  2219.  05h    process can not disable IPC
  2220.  06h    invalid destination process ID
  2221.  07h    invalid sending process ID
  2222.  08h    invalid data destination
  2223.  09h    no more process IDs available
  2224.  0Ah    can not relinquish that process ID
  2225.  0Bh    message space is full
  2226.  0Ch    IPC is not installed
  2227. --------R-60---------------------------------
  2228. INT 60 - Tangram Arbiter - API
  2229. Desc:    Arbiter makes a PC disk look like a slow disk over an SNA link to an
  2230.       IBM mainframe
  2231. Range:    INT 60h to INT 66h, selected by configuration parameter
  2232. Notes:    identified by string "@ARB_API" immediately following a short jump at
  2233.       the interrupt handler address
  2234. --------N-60---------------------------------
  2235. INT 60 - Excelan LAN Workplace for DOS 3.5 - API
  2236.     ES:BX -> request packet (see #2446)
  2237. Return: request packet updated
  2238. Notes:    this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
  2239.       which was used in creating this description
  2240.     the installation check consists of testing for the WORD 4142h ('AB')
  2241.       immediately preceding the interrupt handler
  2242. BUG:    because BWLWP35 range-checks only the low byte of the function number,
  2243.       and has a fencepost error even in that test, functions 000Bh and
  2244.       XX01h-XX0Bh (XX nonzero) branch to random locations
  2245. SeeAlso: INT 2F/AX=7A40h
  2246.  
  2247. Format of Excelan request packet:
  2248. Offset    Size    Description    (Table 2446)
  2249.  00h 12 BYTEs    ???
  2250.  0Ch    WORD    (ret) error code (see #2447)
  2251.  0Eh    DWORD    -> FAR function for ???
  2252.  12h    WORD    function number
  2253.         0001h ???
  2254.         0002h NOP
  2255.         0003h NOP
  2256.         0004h NOP
  2257.         0005h ???
  2258.         0006h get ??? record
  2259.         0007h NOP
  2260.         0008h reset ???
  2261.         0009h NOP
  2262.         000Ah set ???
  2263.     ???
  2264. ---function 01h---
  2265.  20h    BYTE    (call) subfunction (32h-3Bh)
  2266.         3Bh non-blocking I/O request (will be tested every clock tick)
  2267.  21h    BYTE    (ret) error code
  2268.         00h successful
  2269.         09h invalid connection number
  2270.         2Ah bad connection type
  2271.         45h ???
  2272. ---function 01h, subfunction 32h---
  2273.  3Ah    WORD    (call) connection type (01h stream, 02h datagram)
  2274. ---function 01h, subfunction 34h---
  2275.  26h    WORD    (call) ???
  2276.  28h    WORD    (call) ???
  2277.  2Ah    WORD    (call) ???
  2278. ---function 01h, subfunction 35h---
  2279.  1Ah    WORD    (call) connection number???
  2280.  26h    WORD    (ret) ???
  2281. ---function 01h, subfunction 36h---
  2282.  1Ah    WORD    (call) connection number???
  2283.  38h    WORD    ???
  2284. ---function 01h, subfunction 37h---
  2285.  24h    WORD    (ret) ???
  2286.  26h    WORD    (ret) ???
  2287. ---function 01h, subfunction 38h---
  2288.  1Ah    WORD    (call) connection number???
  2289. ---function 01h, subfunction 3Ah---
  2290.  22h    WORD    (call) ???
  2291.         667Eh ???
  2292.         667Fh ???
  2293.  24h    BYTE    (call 667Eh) ???
  2294.  24h    WORD    (return 667Fh) ???
  2295. ---function 01h, subfunction 3Bh---
  2296.  0Eh    DWORD    (call) -> function to invoke for I/O or 0000h:0000h
  2297.         function called with AX = 0000h
  2298.                      STACK: DWORD -> request packet
  2299.                         WORD 0000h
  2300.             should return STACK unchanged
  2301.  1Ah    WORD    (call) connection number???
  2302.  21h    BYTE    (ret) set to 01h when I/O becomes possible
  2303.  22h    BYTE    (call) direction (00h write, 01h read)
  2304.  34h    DWORD    (ret) -> next pending request packet
  2305. ---function 05h---
  2306.  1Eh    WORD    (call) ???
  2307.  20h    WORD    (call) ???
  2308.  34h    DWORD    (call) -> ???
  2309. ---function 06h---
  2310.  16h    DWORD    (call) -> buffer for ??? record (see #2448)
  2311.  1Ah    WORD    (call) number of bytes to copy
  2312.  22h    WORD    (ret) number of bytes transferred
  2313. ---function 08h---
  2314.  14h    WORD    (ret) ??? (0001h)
  2315. ---function 0Ah---
  2316.  16h    DWORD    (call) -> WORD ???
  2317.  1Ch    WORD    (call) must be 000Ah for BWLWP35
  2318.  
  2319. (Table 2447)
  2320. Values for Excelan error code:
  2321.  0000h    successful
  2322.  002Dh    invalid function
  2323.  0050h    ???
  2324.  
  2325. Format of ??? record:
  2326. Offset    Size    Description    (Table 2448)
  2327.  00h    WORD    offset of ???
  2328.  02h  4 BYTEs    ???
  2329.  06h    DWORD    IP address (big-endian)
  2330.  0Ah  6 BYTEs    physical address (big-endian)
  2331.     ???
  2332. --------N-60---------------------------------
  2333. INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
  2334. Note:    The handler for the interrupt will start with a 2-byte NEAR jump
  2335.       instruction, followed by the ASCIZ signature string "TCP DRVR".
  2336.     To find the interrupt being used by the driver, an application
  2337.       should scan through interrupt vectors 60h to 7Fh until it finds
  2338.       one with the "TCP DRVR" string.
  2339.     This specification is being proposed by Peter R. Tattam from the
  2340.       University of Tasmania.
  2341. Index:    installation check;TCPDRV
  2342. --------G-60---------------------------------
  2343. INT 60 U - INTRSPY/CMDSPY v1.0 only - API
  2344. Program: INTRSPY is a script-driven debugger included with the book
  2345.       _Undocumented_DOS_.
  2346. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  2347.     The installation check is to
  2348.       a) determine that the handler is an IRET instruction
  2349.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  2350.     If INTRSPY is installed, the DWORD immediately after the IRET stores
  2351.       its entry point (see #2449)
  2352.     INTRSPY v2.0 (included with the second edition of the book) no longer
  2353.       supports this API
  2354. Index:    installation check;INTRSPY
  2355.  
  2356. (Table 2449)
  2357. Call INTRSPY v1.0 entry point with:
  2358.     AH = function
  2359.         00h ???
  2360.         01h set current directory (for use in reporting)
  2361.         ES:DI -> counted string containing directory name (max 79 char)
  2362.         02h set name of script file
  2363.         ES:DI -> counted string containing file name (max 79 chars)
  2364.         03h set script arguments
  2365.         ES:DI -> counted string containing arguments (max 79 chars)
  2366.         04h get directory set with function 01h
  2367.         ES:DI -> 80-byte buffer for directory name
  2368.         05h get name of script file
  2369.         ES:DI -> 80-byte buffer for script filename
  2370.         06h get script arguments
  2371.         ES:DI -> 80-byte buffer for script arguments
  2372.         07h get ???
  2373.         CL = 00h-15h specifies what to get
  2374.         ES:DI -> WORD to be set with desired value on return
  2375.         08h get ???
  2376.         ES:DI -> WORD to be set with returned value
  2377.         09h get ???
  2378.         ES:DI -> WORD to be set with returned value
  2379.         0Bh store code for interrupt handler???
  2380.         ES:DI -> data
  2381.         CX = number of bytes
  2382.         0Ch ???
  2383.         ES:DI -> ???
  2384.         0Dh get ???
  2385.         ES:DI -> BYTE to be set with returned value
  2386.         0Eh set ??? flag
  2387.         0Fh clear ??? flag
  2388.         10h ???
  2389.         Return: AL = 04h or 05h if failed
  2390.         11h ???
  2391.         Return: AL = 05h if failed
  2392.         12h get ???
  2393.         ES:DI -> buffer
  2394.         Return: CX = number of bytes returned in buffer
  2395.         13h ???
  2396. Return: AH = 00h
  2397.     AL = status
  2398.         00h successful
  2399.         01h invalid function
  2400.         02h ???
  2401.         03h ???
  2402.         04h ???
  2403.         05h ???
  2404. --------u-60---------------------------------
  2405. INT 60 U - PC/370 v4.2 - ???
  2406.     ???
  2407. Return: ???
  2408. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  2409. Range:    INT 00 to INT FF, selected by patching the executable
  2410. Note:    the documentation includes instructions for patching the system for
  2411.       another interrupt
  2412. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  2413. --------r-60---------------------------------
  2414. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  2415. SeeAlso: INT 61"JPI"
  2416. --------N-60---------------------------------
  2417. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  2418. Range:    INT 20 to INT FF
  2419. Notes:    The handler for the interrupt will start with a 3-byte jump
  2420.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  2421.       terminating NUL is significant).
  2422.     To find the interrupt being used by the driver, an application should
  2423.       scan through interrupt vectors 20h to FFh (60h through 80h for
  2424.       v1.09- of the specification) until it finds one with the "PKT DRVR"
  2425.       string.
  2426.     AH values of 80h to FFh have been reserved for user-defined additions.
  2427. --------I-60---------------------------------
  2428. INT 60 u - 3270-PC CONTROL PROGRAM - ???
  2429. --------b-60----DI0100-----------------------
  2430. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  2431.     DI = 0100h
  2432.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2433.         DWORD    pointer to event record (see #2451)
  2434. Return: event record filled
  2435.     STACK unchanged
  2436. Note:    this call will timeout after about 500ms
  2437. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  2438.  
  2439. (Table 2450)
  2440. Values for HP 95LX event type:
  2441.  00h    no events
  2442.  01h    keystroke available
  2443.  02h    Ctrl-Break
  2444.  03h    reactivation (always follows deactivation event)
  2445.  04h    about to deactivate (sleep)
  2446.     next get-event call will not return until reactivated
  2447.  05h    forced application termination
  2448.  06h    1-2-3 bridge service request (only given to 1-2-3)
  2449.  07h    request to grow
  2450.  08h    request to shrink
  2451.  09h    application's alarm expired
  2452.  0Ah    daily chance to set an alarm
  2453.  0Bh    system date or time has been changed
  2454.  
  2455. Format of HP 95LX event record:
  2456. Offset    Size    Description    (Table 2451)
  2457.  00h    WORD    event type (see #2450)
  2458.  02h    WORD    ASCII code page 850 translation of keystroke
  2459.         or grow/shrink amount in paragraphs or 0000h if error
  2460.         or alarm expiration data
  2461.  04h    BYTE    scan code from BIOS
  2462.  05h    BYTE    shift key states at time keystroke is retrieved
  2463.  06h    WORD    LICS translation of keystroke
  2464.  08h    BYTE    function key number (1-2-3 only)
  2465.  09h    DWORD    pointer to 1-2-3 bridge record (see #2453)
  2466.         or pointer to time change structure (see #2452)
  2467. Note:    if the System Manager is awaiting the conclusion of a bridge service
  2468.       or grow/shrink call and the event type field is set to FFFFh on
  2469.       entry, the SysMgr will resume
  2470.  
  2471. Format of HP 95LX time change structure:
  2472. Offset    Size    Description    (Table 2452)
  2473.  00h    WORD    old year
  2474.  02h    BYTE    old month
  2475.  03h    BYTE    old date
  2476.  04h    BYTE    old day
  2477.  05h    BYTE    old hour
  2478.  06h    BYTE    old minute
  2479.  07h    BYTE    old second
  2480.  08h    BYTE    old hundredth of a second
  2481.  09h  9 BYTEs    new time in same format as old time
  2482. --------b-60----DI0101-----------------------
  2483. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  2484.     DI = 0101h
  2485.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2486.         DWORD pointer to event record (INT 60/DI=0100h)
  2487. Return: event record filled
  2488.     STACK unchanged
  2489. Note:    this call returns immediately if no event is available
  2490. SeeAlso: INT 60/DI=0100h
  2491. --------b-60----DI0102-----------------------
  2492. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  2493.     DI = 0102h
  2494.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2495. Return: ???
  2496.     STACK unchanged
  2497. --------b-60----DI0104-----------------------
  2498. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  2499.     DI = 0104h
  2500.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2501.         DWORD pointer to bridge record (see #2453)
  2502. Return: ???
  2503.     STACK unchanged
  2504.  
  2505. Format of HP 95LX bridge record:
  2506. Offset    Size    Description    (Table 2453)
  2507.  00h    WORD    function code (see #2454)
  2508.  02h    WORD    return code from 1-2-3
  2509.  04h 16 BYTEs    ASCII range name
  2510.  14h    WORD    start column of range
  2511.  16h    WORD    start row of range
  2512.  18h    WORD    end column of range
  2513.  1Ah    WORD    end row of range
  2514.  1Ch    WORD    order in which data is placed in buffer
  2515.  1Eh    WORD    buffer size
  2516.  20h    WORD    offset within bridge record's segment of buffer for cell data
  2517.  
  2518. (Table 2454)
  2519. Values for HP 95LX function code:
  2520.  00h    test
  2521.  01h    get range
  2522.  02h    "GETRANGE_ADDR"
  2523.  03h    "SETRANGE_ADDR"
  2524.  04h    "GETRANGE_DATA"
  2525.  05h    "SETRANGE_DATA"
  2526.  06h    recalculate
  2527.  07h    get cursor
  2528.  08h    set cursor
  2529.  09h    redisplay
  2530.  0Ah    cell type
  2531.  0Bh    "CALCTYPE"
  2532. --------b-60----DI0105-----------------------
  2533. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  2534.     DI = 0105h
  2535.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2536. Return: ???
  2537.     STACK unchanged
  2538. --------b-60----DI0106-----------------------
  2539. INT 60 u - HP 95LX System Manager - YIELD CPU
  2540.     DI = 0106h
  2541.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2542.         DWORD pointer to ???
  2543. Return: ???
  2544.     STACK unchanged
  2545. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  2546. --------b-60----DI0107-----------------------
  2547. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  2548.     DI = 0107h
  2549.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2550.         DWORD pointer to ???
  2551. Return: ???
  2552.     STACK unchanged
  2553. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2554. --------b-60----DI0200-----------------------
  2555. INT 60 u - HP 95LX System Manager - SETUP MENU
  2556.     DI = 0200h
  2557.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2558.         DWORD    pointer to menu data (see #2455)
  2559.         DWORD    pointer to ???
  2560.         WORD    number of items on menu???
  2561.         WORD    ???
  2562.         DWORD    pointer to ???
  2563.         WORD    ???
  2564.         DWORD    pointer to ???
  2565. Return: ???
  2566.     STACK unchanged
  2567. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  2568.  
  2569. Format of HP 95LX menu data:
  2570. Offset    Size    Description    (Table 2455)
  2571.  00h 80 BYTEs    first line of menu text
  2572.  50h 80 BYTEs    second line of menu text
  2573.  A0h 80 BYTEs    third line of menu text
  2574.  F0h    WORD    number of keywords
  2575.  F2h    WORD    index of currently highlighted keyword or FFFFh
  2576.  F4h    WORD    single prompt on top line if nonzero
  2577.  F6h 20 BYTEs    which line each of 20 keywords is located on
  2578. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  2579. 11Eh 20 BYTEs    length of each of 20 keywords
  2580. 132h 20 BYTEs    first letter of each of 20 keywords
  2581. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  2582. --------b-60----DI0201-----------------------
  2583. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  2584.     DI = 0201h
  2585.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2586.         DWORD    pointer to menu data (see #2455)
  2587. Return: ???
  2588.     STACK unchanged
  2589. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  2590. --------b-60----DI0202-----------------------
  2591. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  2592.     DI = 0202h
  2593.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2594.         DWORD    pointer to menu data (see #2455)
  2595. Return: ???
  2596.     STACK unchanged
  2597. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  2598. --------b-60----DI0203-----------------------
  2599. INT 60 u - HP 95LX System Manager - REMOVE MENU
  2600.     DI = 0203h
  2601.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2602.         DWORD    pointer to menu data (see #2455)
  2603. Return: ???
  2604.     STACK unchanged
  2605. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  2606. --------b-60----DI0204-----------------------
  2607. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  2608.     DI = 0204h
  2609.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2610.         DWORD    pointer to menu data (see #2455)
  2611.         WORD    keystroke
  2612.         DWORD    pointer to WORD to receive selection number
  2613. Return: buffer for selection number filled with index of selected menu item or
  2614.       FFFFh if no final selection yet
  2615.     STACK unchanged
  2616. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  2617. --------b-60----DI0205-----------------------
  2618. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  2619.     DI = 0205h
  2620.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2621.         DWORD    pointer to file menu structure (see #2456)
  2622.         DWORD    pointer to edit record (see #2459 at INT 60/DI=0400h)
  2623.         DWORD    pointer to wildcard filespec for initial file list
  2624.         WORD    row???
  2625.         WORD    column???
  2626. Return: ???
  2627.     STACK unchanged
  2628. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  2629.  
  2630. Format of HP 95LX file menu structure:
  2631. Offset    Size    Description    (Table 2456)
  2632.  00h    DWORD    pointer to ASCIZ base directory name
  2633.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  2634.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see #2457)
  2635.  0Ch    WORD    size of file list workspace in bytes
  2636.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  2637.  10h    WORD    starting column
  2638.  12h    WORD    number of lines
  2639.  14h    WORD    number of columns
  2640.  16h    WORD    number of files displayed on each line
  2641. ---the remaining fields are initialized by the System Manager---
  2642.  18h    WORD    0000h if first edit character, else multiline
  2643.  1Ah    WORD    number of files in file list
  2644.  1Ch    WORD    max files workspace has room for
  2645.  1Eh    WORD    file at top of list
  2646.  20h    WORD    index of file to highlight
  2647.  22h    WORD    index of file to unhighlight
  2648.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  2649.  
  2650. Format of HP 95LX file list workspace entry:
  2651. Offset    Size    Description    (Table 2457)
  2652.  00h    BYTE    file attributes
  2653.  01h    WORD    file time (see #0971 at INT 21/AX=5700h)
  2654.  03h    WORD    file date (see #0972 at INT 21/AX=5700h)
  2655.  05h    DWORD    file size
  2656.  09h 13 BYTEs    ASCIZ filename
  2657. --------b-60----DI0206-----------------------
  2658. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  2659.     DI = 0206h
  2660.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2661.         DWORD    pointer to file menu structure (see #2456)
  2662.         DWORD    pointer to edit record (see #2459 at INT 60/DI=0400h)
  2663. Return: ???
  2664.     STACK unchanged
  2665. SeeAlso: INT 60/DI=0205h
  2666. --------b-60----DI0207-----------------------
  2667. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  2668.     DI = 0207h
  2669.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2670.         DWORD    pointer to file menu structure (see #2456)
  2671.         DWORD    pointer to edit record (see #2459 at INT 60/DI=0400h)
  2672.         WORD    keystroke
  2673. Return: AX = status (see #2458)
  2674.     STACK unchanged
  2675. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  2676.  
  2677. (Table 2458)
  2678. Values for HP 95LX System Manager status:
  2679.  0000h    keystroke processed, call INT 60/DI=0206h to refresh menu
  2680.  0001h    redisplay application area before refreshing menu
  2681.  0002h    user confirmed selection, filename is in edit record's buffer
  2682.  0003h    user aborted menu
  2683.  FFFBh    bad filename
  2684.  FFFCh    bad directory
  2685.  FFFDh    bad drive
  2686.  FFFEh    unknown keystroke
  2687.  FFFFh    keystroke known but invalid in current context
  2688. --------b-60----DI0208-----------------------
  2689. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  2690.     DI = 0208h
  2691.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2692.         DWORD    pointer to file menu structure (see #2456)
  2693.         DWORD    pointer to edit record (see #2459 at INT 60/DI=0400h)
  2694. Return: ???
  2695.     STACK unchanged
  2696. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  2697. --------b-60----DI0300-----------------------
  2698. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  2699.     DI = 0300h
  2700.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2701.         WORD    starting row (-3 is topmost, 0 is first user line)
  2702.         WORD    starting column
  2703.         DWORD    pointer to string
  2704.         WORD    length of string
  2705.         WORD    display style: 0000h normal, 0001h reverse video
  2706.         WORD    "OSTYLE"
  2707. Return: ???
  2708.     STACK unchanged
  2709. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  2710. --------b-60----DI0301-----------------------
  2711. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  2712.     DI = 0301h
  2713.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2714.         WORD    starting row (-3 is topmost, 0 is first user line)
  2715.         WORD    starting column
  2716.         WORD    number of rows
  2717.         WORD    number of columns
  2718. Return: ???
  2719.     STACK unchanged
  2720. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  2721. --------b-60----DI0302-----------------------
  2722. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  2723.     DI = 0302h
  2724.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2725.         WORD    starting row???
  2726.         WORD    starting column???
  2727.         WORD    height of scroll region???
  2728.         WORD    width of scroll region???
  2729.         WORD    number of lines to scroll region???
  2730. Return: ???
  2731.     STACK unchanged
  2732. SeeAlso: INT 60/DI=0301h
  2733. --------b-60----DI0303-----------------------
  2734. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  2735.     DI = 0303h
  2736.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2737.         WORD    ???
  2738.         WORD    ???
  2739.         WORD    ???
  2740.         WORD    ???
  2741.         DWORD    pointer to ???
  2742. Return: ???
  2743.     STACK unchanged
  2744. --------b-60----DI0304-----------------------
  2745. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  2746.     DI = 0304h
  2747.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2748.         DWORD    pointer to ???
  2749.         WORD    ???
  2750. Return: ???
  2751.     STACK unchanged
  2752. --------b-60----DI0305-----------------------
  2753. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  2754.     DI = 0305h
  2755.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2756.         WORD    ???
  2757.         WORD    ???
  2758.         DWORD    pointer to ???
  2759.         WORD    ???
  2760. Return: ???
  2761.     STACK unchanged
  2762. --------b-60----DI0307-----------------------
  2763. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  2764.     DI = 0307h
  2765.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2766.         WORD    ???
  2767.         WORD    ???
  2768.         WORD    ???
  2769. Return: ???
  2770.     STACK unchanged
  2771. --------b-60----DI0308-----------------------
  2772. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  2773.     DI = 0308h
  2774.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2775. Return: ???
  2776.     STACK unchanged
  2777. --------b-60----DI0309-----------------------
  2778. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  2779.     DI = 0309h
  2780.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2781.         WORD    new mode
  2782. Return: ???
  2783.     STACK unchanged
  2784. --------b-60----DI030A-----------------------
  2785. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  2786.     DI = 030Ah
  2787.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2788. Return: ???
  2789.     STACK unchanged
  2790. --------b-60----DI030B-----------------------
  2791. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  2792.     DI = 030Bh
  2793.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2794.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  2795.         WORD    column
  2796. Return: ???
  2797.     STACK unchanged
  2798. Note:    cursor is hidden if the specified position is not on the physical
  2799.       display
  2800. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2801. --------b-60----DI0400-----------------------
  2802. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  2803.     DI = 0400h
  2804.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2805.         DWORD    pointer to edit record (see #2459)
  2806.         DWORD    pointer to string to be edited
  2807.         WORD    initial length of string being edited
  2808.         WORD    maximum length of edited string
  2809.         WORD    row of edit field
  2810.         WORD    leftmost column of edit field
  2811. Return: ???
  2812.     STACK unchanged
  2813.  
  2814. Format of HP 95LX edit record:
  2815. Offset    Size    Description    (Table 2459)
  2816.  00h    WORD    current length of edit buffer
  2817.  02h    BYTE    flag for special processing on first character
  2818.  03h    BYTE    flags
  2819.         bit 0: tab handling
  2820.  04h    WORD    editing in prompt window?
  2821.  06h    DWORD    pointer to top line of prompt window message
  2822.  0Ah    WORD    length of top line of prompt
  2823.  0Ch    DWORD    pointer to second line of prompt window message
  2824.  10h    WORD    length of second line of prompt
  2825.  12h 80 BYTEs    workspace for editing
  2826.  62h  2 WORDs    line array needed for multi-line editing
  2827.  66h 36 BYTEs    multi-line edit record (see #2460)
  2828.  8Ah    WORD    displayable columns
  2829.  
  2830. Format of HP 95LX multi-line edit record:
  2831. Offset    Size    Description    (Table 2460)
  2832.  00h    DWORD    pointer to user-supplied edit buffer
  2833.  04h    WORD    length of edit buffer
  2834.  06h    WORD    current cursor position
  2835.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  2836.  0Ah    WORD    starting column of edit area
  2837.  0Ch    WORD    height of edit area
  2838.  0Eh    WORD    width of edit area
  2839.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  2840.  12h    WORD    number of rows displayable
  2841.  14h    BYTE    cursor column
  2842.  15h    BYTE    01h if buffer has been modified
  2843.  16h    BYTE    first displayable column (ticker fields only)
  2844.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  2845.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  2846.           area is high)
  2847.  1Ch    BYTE    currently marking?
  2848.  1Dh    BYTE    flag
  2849.  1Eh    WORD    offset of mark start
  2850.  20h    WORD    offset of mark end (inclusive)
  2851.  22h    WORD    displayable columns
  2852. --------b-60----DI0401-----------------------
  2853. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  2854.     DI = 0401h
  2855.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2856.         DWORD    pointer to edit record (see #2459)
  2857.         DWORD    pointer to string to edit
  2858.         WORD    initial length of string being edited
  2859.         WORD    maximum length of edited string
  2860.         DWORD    pointer to first line of prompt
  2861.         WORD    length of first line
  2862.         DWORD    pointer to second line of prompt
  2863.         WORD    length of second line
  2864. Return: ???
  2865.     STACK unchanged
  2866. --------b-60----DI0402-----------------------
  2867. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  2868.     DI = 0402h
  2869.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2870.         DWORD    pointer to edit record (see #2459)
  2871. Return: ???
  2872.     STACK unchanged
  2873. --------b-60----DI0403-----------------------
  2874. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  2875.     DI = 0403h
  2876.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2877.         DWORD    pointer to edit record (see #2459)
  2878.         WORD    keystroke
  2879.         DWORD    pointer to WORD buffer for result code
  2880. Return: result code buffer filled with 0001h if editing complete
  2881.     STACK unchanged
  2882. --------b-60----DI0404-----------------------
  2883. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  2884.     DI = 0404h
  2885.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2886.         DWORD    pointer to ???
  2887.         WORD    ???
  2888.         WORD    ???
  2889.         WORD    ???
  2890.         WORD    ???
  2891.         DWORD    pointer to ???
  2892.         WORD    ???
  2893.         WORD    ???
  2894.         WORD    ???
  2895.         DWORD    pointer to ???
  2896. Return: ???
  2897.     STACK unchanged
  2898. --------b-60----DI0405-----------------------
  2899. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  2900.     DI = 0405h
  2901.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2902.         DWORD    pointer to ???
  2903. Return: ???
  2904.     STACK unchanged
  2905. --------b-60----DI0406-----------------------
  2906. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  2907.     DI = 0406h
  2908.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2909.         DWORD    pointer to ???
  2910.         WORD    ???
  2911. Return: ???
  2912.     STACK unchanged
  2913. --------b-60----DI0407-----------------------
  2914. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  2915.     DI = 0407h
  2916.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2917.         DWORD    pointer to ???
  2918.         DWORD    pointer to ???
  2919. Return: ???
  2920.     STACK unchanged
  2921. --------b-60----DI0408-----------------------
  2922. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  2923.     DI = 0408h
  2924.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2925.         DWORD    pointer to ???
  2926. Return: ???
  2927.     STACK unchanged
  2928. --------b-60----DI0409-----------------------
  2929. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  2930.     DI = 0409h
  2931.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2932.         DWORD    pointer to ???
  2933. Return: ???
  2934.     STACK unchanged
  2935. --------b-60----DI040A-----------------------
  2936. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  2937.     DI = 040Ah
  2938.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2939.         DWORD    pointer to ???
  2940. Return: ???
  2941.     STACK unchanged
  2942. --------b-60----DI040B-----------------------
  2943. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  2944.     DI = 040Bh
  2945.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2946.         DWORD    pointer to ???
  2947.         DWORD    pointer to ???
  2948.         WORD    ???
  2949. Return: ???
  2950.     STACK unchanged
  2951. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2952. --------b-60----DI0500-----------------------
  2953. INT 60 u - HP 95LX System Manager - OPEN FILE
  2954.     DI = 0500h
  2955.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2956.         DWORD    pointer to file state record (see #2461)
  2957.         DWORD    pointer to filename
  2958.         WORD    length of filename
  2959.         WORD    ???
  2960.         WORD    suppress buffering if nonzero
  2961. Return: AX = status
  2962.     STACK unchanged
  2963. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  2964.  
  2965. Format of HP 95LX file state record:
  2966. Offset    Size    Description    (Table 2461)
  2967.  00h    WORD    DOS file handle
  2968.  02h    WORD    state flags (see #2462)
  2969.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  2970.  08h    DWORD    DOS file offset of start of buffer
  2971.  0Ch    DWORD    effective file offset as seen by caller
  2972.  10h    WORD    number of bytes in file buffer
  2973. ---buffered I/O only---
  2974.  12h 512 BYTEs    file buffer
  2975.  
  2976. Bitfields for HP 95LX file state flags:
  2977. Bit(s)    Description    (Table 2462)
  2978.  0    buffer contents valid
  2979.  1    buffer is dirty and must be written
  2980.  2    unbuffered I/O
  2981.  3    file is a character device
  2982. SeeAlso: #2461
  2983. --------b-60----DI0501-----------------------
  2984. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  2985.     DI = 0501h
  2986.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2987.         DWORD    pointer to file state record (see #2461)
  2988.         DWORD    pointer to filename
  2989.         WORD    length of filename
  2990.         WORD    ???
  2991.         WORD    suppress buffering if nonzero
  2992. Return: AX = status
  2993.     STACK unchanged
  2994. SeeAlso: INT 60/DI=0500h
  2995. --------b-60----DI0502-----------------------
  2996. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  2997.     DI = 0502h
  2998.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2999.         DWORD    pointer to file state record (see #2461)
  3000.         DWORD    pointer to filename
  3001.         WORD    length of filename
  3002.         WORD    ???
  3003.         WORD    suppress buffering if nonzero
  3004. Return: AX = status
  3005.     STACK unchanged
  3006. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  3007. --------b-60----DI0503-----------------------
  3008. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  3009.     DI = 0503h
  3010.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3011.         DWORD    pointer to file state record (see #2461)
  3012.         DWORD    pointer to filename
  3013.         WORD    length of filename
  3014.         WORD    ???
  3015.         WORD    suppress buffering if nonzero
  3016. Return: AX = status
  3017.     STACK unchanged
  3018. SeeAlso: INT 60/DI=0502h
  3019. --------b-60----DI0504-----------------------
  3020. INT 60 u - HP 95LX System Manager - READ FROM FILE
  3021.     DI = 0504h
  3022.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3023.         DWORD    pointer to file state record (see #2461)
  3024.         DWORD    pointer to data buffer
  3025.         WORD    number of bytes to read
  3026.         DWORD    pointer to WORD in which to return actual bytes read
  3027. Return: ???
  3028.     STACK unchanged
  3029. SeeAlso: INT 60/DI=0505h
  3030. --------b-60----DI0505-----------------------
  3031. INT 60 - HP 95LX System Manager - WRITE TO FILE
  3032.     DI = 0505h
  3033.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3034.         DWORD    pointer to file state record (see #2461)
  3035.         DWORD    pointer to data
  3036.         WORD    length of data
  3037. Return: AX = status
  3038.     STACK unchanged
  3039. SeeAlso: INT 60/DI=0504h
  3040. --------b-60----DI0506-----------------------
  3041. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  3042.     DI = 0506h
  3043.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3044.         DWORD    pointer to file state record (see #2461)
  3045.         2 WORDs    ???
  3046. Return: ???
  3047.     STACK unchanged
  3048. SeeAlso: INT 60/DI=0507h
  3049. --------b-60----DI0507-----------------------
  3050. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  3051.     DI = 0507h "M_TELL"
  3052.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3053.         DWORD    pointer to file state record (see #2461)
  3054.         DWORD    pointer to DWORD buffer for file position???
  3055. Return: ???
  3056.     STACK unchanged
  3057. SeeAlso: INT 60/DI=0506h
  3058. --------b-60----DI0508-----------------------
  3059. INT 60 u - HP 95LX System Manager - CLOSE FILE
  3060.     DI = 0508h
  3061.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3062.         DWORD    pointer to file state record (see #2461)
  3063. Return: ???
  3064.     STACK unchanged
  3065. SeeAlso: INT 60/DI=0500h
  3066. --------b-60----DI0509-----------------------
  3067. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  3068.     DI = 0509h
  3069.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3070.         DWORD    pointer to ???
  3071.         DWORD    pointer to ???
  3072.         WORD    ???
  3073.         WORD    ???
  3074. Return: ???
  3075.     STACK unchanged
  3076. --------b-60----DI050A-----------------------
  3077. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  3078.     DI = 050Ah
  3079.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3080.         DWORD    pointer to ??? (see #2463)
  3081.         DWORD    pointer to ???
  3082. Return: ???
  3083.     STACK unchanged
  3084.  
  3085. Format of HP 95LX pattern match control block:
  3086. Offset    Size    Description    (Table 2463)
  3087.  00h 43 BYTEs    FindFirst data block (see #0933 at INT 21/AH=4Eh)
  3088.  2Bh 80 BYTEs    full path name
  3089.  7Bh    BYTE    offset of last component of filename
  3090.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  3091. --------b-60----DI050B-----------------------
  3092. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  3093.     DI = 050Bh
  3094.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3095.         DWORD    pointer to ???
  3096.         WORD    ???
  3097.         WORD    ???
  3098.         DWORD    pointer to ???
  3099. Return: ??? = result (see #2464)
  3100.     ???
  3101.     STACK unchanged
  3102.  
  3103. (Table 2464)
  3104. Values returned by HP 95LX System Manager:
  3105.  0000h    nonexistent
  3106.  0001h    file
  3107.  0002h    directory
  3108.  0003h    character device
  3109. --------b-60----DI050C-----------------------
  3110. INT 60 u - HP 95LX System Manager - DELETE FILE
  3111.     DI = 050Ch "M_DELETE"
  3112.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3113.         DWORD    pointer to ???
  3114.         WORD    ???
  3115.         WORD    ???
  3116. Return: ???
  3117.     STACK unchanged
  3118. --------b-60----DI050D-----------------------
  3119. INT 60 u - HP 95LX System Manager - RENAME FILE
  3120.     DI = 050Dh
  3121.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3122.         DWORD    pointer to ???
  3123.         WORD    ???
  3124.         WORD    ???
  3125.         DWORD    pointer to ???
  3126.         WORD    ???
  3127.         WORD    ???
  3128. Return: ???
  3129.     STACK unchanged
  3130. --------b-60----DI050E-----------------------
  3131. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  3132.     DI = 050Eh
  3133.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3134.         WORD    ???
  3135.         DWORD    pointer to ???
  3136.         DWORD    pointer to ???
  3137. Return: ???
  3138.     STACK unchanged
  3139. --------b-60----DI050F-----------------------
  3140. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  3141.     DI = 050Fh
  3142.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3143.         DWORD    pointer to ???
  3144.         WORD    ???
  3145. Return: ???
  3146.     STACK unchanged
  3147. --------b-60----DI0510-----------------------
  3148. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  3149.     DI = 0510h
  3150.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3151.         DWORD    pointer to ???
  3152.         DWORD    pointer to ???
  3153. Return: ???
  3154.     STACK unchanged
  3155. --------b-60----DI0511-----------------------
  3156. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  3157.     DI = 0511h
  3158.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3159.         DWORD    pointer to ???
  3160.         WORD    ???
  3161.         WORD    ???
  3162. Return: ???
  3163.     STACK unchanged
  3164. SeeAlso: INT 21/AH=39h,INT 60/DI=0512h
  3165. --------b-60----DI0512-----------------------
  3166. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  3167.     DI = 0512h
  3168.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3169.         DWORD    pointer to ???
  3170.         WORD    ???
  3171.         WORD    ???
  3172. Return: ???
  3173.     STACK unchanged
  3174. SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511h
  3175. --------b-60----DI0513-----------------------
  3176. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  3177.     DI = 0513h
  3178.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3179.         DWORD    pointer to ??? buffer for current drive
  3180. Return: ???
  3181.     STACK unchanged
  3182. SeeAlso: INT 21/AH=19h,INT 60/DI=0514h
  3183. --------b-60----DI0514-----------------------
  3184. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  3185.     DI = 0514h
  3186.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3187.         WORD    new drive
  3188. Return: ???
  3189.     STACK unchanged
  3190. SeeAlso: INT 21/AH=0Eh,INT 60/DI=0513h
  3191. --------b-60----DI0515-----------------------
  3192. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  3193.     DI = 0515h
  3194.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3195.         DWORD    pointer to ???
  3196.         DWORD    pointer to ???
  3197. Return: ???
  3198.     STACK unchanged
  3199. --------b-60----DI0516-----------------------
  3200. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  3201.     DI = 0516h
  3202.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3203.         DWORD    pointer to ???
  3204. Return: ???
  3205.     STACK unchanged
  3206. --------b-60----DI0517-----------------------
  3207. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  3208.     DI = 0517h
  3209.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3210.         DWORD    pointer to ???
  3211.         WORD    ???
  3212.         WORD    ???
  3213.         DWORD    pointer to ??? buffer for file's attributes???
  3214. Return: ???
  3215.     STACK unchanged
  3216. SeeAlso: INT 21/AX=4300h,INT 60/DI=0518h
  3217. --------b-60----DI0518-----------------------
  3218. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  3219.     DI = 0518h
  3220.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3221.         DWORD    pointer to ???
  3222.         WORD    ???
  3223.         WORD    ???
  3224.         WORD    new attributes???
  3225. Return: ???
  3226.     STACK unchanged
  3227. SeeAlso: INT 21/AX=4301h,INT 60/DI=0517h
  3228. --------b-60----DI0519-----------------------
  3229. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  3230.     DI = 0519h
  3231.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3232.         DWORD    pointer to ???
  3233.         DWORD    pointer to ???
  3234.         WORD    ???
  3235.         WORD    ???
  3236.         WORD    ???
  3237.         WORD    ???
  3238.         WORD    ???
  3239. Return: ???
  3240.     STACK unchanged
  3241. --------b-60----DI051A-----------------------
  3242. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  3243.     DI = 051Ah
  3244.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3245.         DWORD    pointer to ???
  3246.         DWORD    pointer to ???
  3247. Return: ???
  3248.     STACK unchanged
  3249. --------b-60----DI051B-----------------------
  3250. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  3251.     DI = 051Bh
  3252.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3253.         DWORD    pointer to ???
  3254.         DWORD    pointer to ???
  3255. Return: ???
  3256.     STACK unchanged
  3257. --------b-60----DI051C-----------------------
  3258. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  3259.     DI = 051Ch
  3260.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3261.         DWORD    pointer to ???
  3262.         WORD    ???
  3263. Return: ???
  3264.     STACK unchanged
  3265. --------b-60----DI0600-----------------------
  3266. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  3267.     DI = 0600h
  3268.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3269. Return: ???
  3270.     STACK unchanged
  3271. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  3272. --------b-60----DI0601-----------------------
  3273. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  3274.     DI = 0601h
  3275.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3276. Return: never
  3277.     STACK unchanged
  3278. SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600h
  3279. --------b-60----DI0602-----------------------
  3280. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  3281.     DI = 0602h
  3282.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3283. Return: ???
  3284.     STACK unchanged
  3285. SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603h
  3286. --------b-60----DI0603-----------------------
  3287. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  3288.     DI = 0603h
  3289.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3290. Return: ???
  3291.     STACK unchanged
  3292. SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602h
  3293. --------b-60----DI0604-----------------------
  3294. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  3295.     DI = 0604h
  3296.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3297.         DWORD    pointer to ???
  3298.         WORD    ???
  3299.         WORD    ???
  3300.         DWORD    pointer to ???
  3301. Return: ???
  3302.     STACK unchanged
  3303. SeeAlso: INT 21/AH=4Bh
  3304. --------b-60----DI0605-----------------------
  3305. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  3306.     DI = 0605h
  3307.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3308. Return: ???
  3309.     STACK unchanged
  3310. --------b-60----DI0606-----------------------
  3311. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  3312.     DI = 0606h
  3313.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3314. Return: ???
  3315.     STACK unchanged
  3316. SeeAlso: INT 14/AH=17h"FOSSIL",INT 19
  3317. --------b-60----DI0607-----------------------
  3318. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  3319.     DI = 0607h
  3320.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3321.         DWORD    pointer to ???
  3322.         WORD    ???
  3323.         DWORD    pointer to ???
  3324.         WORD    ???
  3325. Return: ???
  3326.     STACK unchanged
  3327. --------b-60----DI0608-----------------------
  3328. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  3329.     DI = 0608h
  3330.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3331.         DWORD    pointer to ???
  3332. Return: ???
  3333.     STACK unchanged
  3334. --------b-60----DI0609-----------------------
  3335. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  3336.     DI = 0609h
  3337.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3338.         DWORD    pointer to ???
  3339. Return: DX:AX -> ???
  3340.     STACK unchanged
  3341. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3342. --------b-60----DI0700-----------------------
  3343. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  3344.     DI = 0700h
  3345.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3346. Return: ??? = error code (see #2465)
  3347.     ???
  3348.     STACK unchanged
  3349. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  3350.  
  3351. (Table 2465)
  3352. Values for HP 95LX error code:
  3353.  0000h    successful
  3354.  FFF8h    transfer request out of bounds
  3355.  FFF9h    no such representation
  3356.  FFFAh    no representation open
  3357.  FFFBh    a representation is already open
  3358.  FFFCh    representation already exists
  3359.  FFFDh    heap allocation failure
  3360.  FFFEh    clipboard not open
  3361.  FFFFh    clipboard access denied
  3362. --------b-60----DI0701-----------------------
  3363. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  3364.     DI = 0701h
  3365.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3366. Return: ???
  3367.     STACK unchanged
  3368. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  3369. --------b-60----DI0702-----------------------
  3370. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  3371.     DI = 0702h
  3372.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3373.         DWORD    pointer to ???
  3374. Return: ???
  3375.     STACK unchanged
  3376. SeeAlso: INT 60/DI=0700h
  3377. --------b-60----DI0704-----------------------
  3378. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  3379.     DI = 0704h
  3380.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3381.         DWORD    pointer to ???
  3382. Return: ???
  3383.     STACK unchanged
  3384. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  3385. --------b-60----DI0705-----------------------
  3386. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  3387.     DI = 0705h
  3388.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3389. Return: ???
  3390.     STACK unchanged
  3391. SeeAlso: INT 60/DI=0704h
  3392. --------b-60----DI0706-----------------------
  3393. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  3394.     DI = 0706h
  3395.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3396.         WORD    ???
  3397.         DWORD    pointer to ???
  3398.         DWORD    pointer to ???
  3399. Return: ???
  3400.     STACK unchanged
  3401. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  3402. --------b-60----DI0707-----------------------
  3403. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  3404.     DI = 0707h
  3405.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3406.         DWORD    pointer to ???
  3407.         DWORD    pointer to ???
  3408.         DWORD    pointer to ???
  3409. Return: ???
  3410.     STACK unchanged
  3411. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  3412. --------b-60----DI0708-----------------------
  3413. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  3414.     DI = 0708h
  3415.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3416.         DWORD    pointer to data to be written???
  3417.         WORD    length of data???
  3418. Return: ???
  3419.     STACK unchanged
  3420. SeeAlso: INT 60/DI=0709h
  3421. --------b-60----DI0709-----------------------
  3422. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  3423.     DI = 0709h
  3424.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3425.         WORD    ???
  3426.         WORD    ???
  3427.         DWORD    pointer to buffer for data???
  3428.         WORD    length of buffer???
  3429. Return: ???
  3430.     STACK unchanged
  3431. SeeAlso: INT 60/DI=0708h
  3432. --------b-60----DI0800-----------------------
  3433. INT 60 u - HP 95LX System Manager - BEEP
  3434.     DI = 0800h
  3435.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3436. Return: ???
  3437.     STACK unchanged
  3438. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  3439. --------b-60----DI0801-----------------------
  3440. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  3441.     DI = 0801h
  3442.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3443. Return: ???
  3444.     STACK unchanged
  3445. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  3446. --------b-60----DI0802-----------------------
  3447. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  3448.     DI = 0802h
  3449.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3450.         WORD    pattern number (00h-06h)
  3451. Return: ???
  3452.     STACK unchanged
  3453. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  3454. --------b-60----DI0803-----------------------
  3455. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  3456.     DI = 0803h
  3457.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3458. Return: ???
  3459.     STACK unchanged
  3460. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  3461. --------b-60----DI0900-----------------------
  3462. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  3463.     DI = 0900h
  3464.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3465.         WORD    size of block in bytes
  3466. Return: AX -> memory block
  3467.     STACK unchanged
  3468. Note:    System Manager-compliant applications are always small-model (64K code,
  3469.       64K data)
  3470. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  3471. --------b-60----DI0902-----------------------
  3472. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  3473.     DI = 0902h
  3474.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3475.         WORD    offset of memory block???
  3476. Return: ???
  3477.     STACK unchanged
  3478. Note:    System Manager-compliant applications are always small-model (64K code,
  3479.       64K data)
  3480. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  3481. --------b-60----DI0903-----------------------
  3482. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  3483.     DI = 0903h
  3484.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3485.         WORD    size of block in bytes???
  3486. Return: AX -> memory block???
  3487.     STACK unchanged
  3488. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  3489. --------b-60----DI0904-----------------------
  3490. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  3491.     DI = 0904h
  3492.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3493.         WORD    segment of memory block???
  3494. Return: AX -> ???
  3495.     STACK unchanged
  3496. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  3497. --------b-60----DI0B00-----------------------
  3498. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  3499.     DI = 0B00h
  3500.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3501.         DWORD    pointer to ???
  3502. Return: ???
  3503.     STACK unchanged
  3504. --------b-60----DI0B01-----------------------
  3505. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  3506.     DI = 0B01h
  3507.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3508.         DWORD    pointer to ???
  3509. Return: ???
  3510.     STACK unchanged
  3511. --------b-60----DI0B02-----------------------
  3512. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  3513.     DI = 0B02h
  3514.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3515.         DWORD    pointer to ???
  3516. Return: ???
  3517.     STACK unchanged
  3518. --------b-60----DI0B03-----------------------
  3519. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  3520.     DI = 0B03h
  3521.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3522.         WORD    ???
  3523. Return: ???
  3524.     STACK unchanged
  3525. --------b-60----DI0B04-----------------------
  3526. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  3527.     DI = 0B04h
  3528.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3529.         DWORD    pointer to alarm record??? (see #2466)
  3530.         WORD    ???
  3531. Return: ???
  3532.     STACK unchanged
  3533.  
  3534. Format of HP 95LX alarm record:
  3535. Offset    Size    Description    (Table 2466)
  3536.  00h    BYTE    hour
  3537.  01h    BYTE    minute
  3538.  02h    BYTE    second
  3539.  03h    BYTE    unused padding
  3540.  04h    WORD    rescheduling interval, in seconds
  3541.  06h    BYTE    are seconds significant?
  3542.  07h    BYTE    alarm sound
  3543.  08h 40 BYTEs    message displayed when alarm activates
  3544.  30h    BYTE    task ID of owner
  3545.  31h    BYTE    application's own use for sub-class
  3546.  32h  4 BYTEs    application's own use for private data
  3547. --------b-60----DI0B05-----------------------
  3548. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  3549.     DI = 0B05h
  3550.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3551.         DWORD    pointer to ???
  3552. Return: ???
  3553.     STACK unchanged
  3554. --------b-60----DI0B06-----------------------
  3555. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  3556.     DI = 0B06h
  3557.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3558.         DWORD    pointer to ???
  3559.         DWORD    pointer to ???
  3560.         DWORD    pointer to ???
  3561. Return: ???
  3562.     STACK unchanged
  3563. --------b-60----DI0B07-----------------------
  3564. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  3565.     DI = 0B07h
  3566.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3567.         DWORD    pointer to ???
  3568. Return: ???
  3569.     STACK unchanged
  3570. --------b-60----DI0B08-----------------------
  3571. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  3572.     DI = 0B08h
  3573.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3574.         WORD    timestamp format (see #2467)
  3575.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  3576.         WORD    column
  3577. Return: ???
  3578.     STACK unchanged
  3579.  
  3580. Bitfields for HP 95LX timestamp format:
  3581. Bit(s)    Description    (Table 2467)
  3582.  1-0    timestamp components
  3583.     00 date only
  3584.     01 time only
  3585.     10 date and time
  3586.     11 day and date
  3587.  4    supply am/pm
  3588.  5    supply seconds
  3589.  6    show year
  3590.  7    four-digit year
  3591. --------b-60----DI0B09-----------------------
  3592. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  3593.     DI = 0B09h
  3594.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3595.         DWORD    pointer to ??? (see #2468)
  3596.         DWORD    pointer to ???
  3597. Return: ???
  3598.     STACK unchanged
  3599. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  3600.  
  3601. Format of HP 95LX system settings:
  3602. Offset    Size    Description    (Table 2468)
  3603.  00h    WORD    country code
  3604.  02h    WORD    speaker volume (00h-03h or FFh for off)
  3605.  04h    WORD    contrast level (00h-0Fh)
  3606.  06h    WORD    week start (00h Sunday, 01h Monday)
  3607.  08h    WORD    punctuation format (see #2469)
  3608.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  3609.  0Ch    WORD    current date format (see #2470)
  3610.  0Eh    WORD    current time format (see #2471)
  3611.  10h    WORD    collating sequence
  3612.         00h numbers first, 01h letters first, 02h ASCII
  3613.  12h 80 BYTEs    name of picture file
  3614.  62h 30 BYTEs    name
  3615.  80h 30 BYTEs    title
  3616.  9Eh 28 BYTEs    company name
  3617.  BAh    WORD    number of languages
  3618.  BCh  6 BYTEs    available languages
  3619.  C2h 66 BYTEs    language menu
  3620. 104h  2 BYTEs    ASCIZ date separator
  3621. 106h  2 BYTEs    ASCIZ time separator
  3622. 108h    BYTE    date order
  3623. 109h    BYTE    use 24 hour time?
  3624. 10Ah 16 BYTEs    currency string
  3625. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  3626. 11Ch    WORD    keyboard (see #2472)
  3627. 11Eh    WORD    printer baud rate
  3628.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  3629. 120h    WORD    printer driver code
  3630.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  3631. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  3632. 124h    WORD    system manager interrupt (60h by default)
  3633. 126h    WORD    code page (01h CP850, 02h CP437)
  3634. 128h    WORD    active exit key
  3635. 12Ah    WORD    active menu key
  3636. 12Ch    WORD    active CHAR key toggle
  3637. 12Eh  6 BYTEs    alarm
  3638.  
  3639. (Table 2469)
  3640. Values for HP 95LX punctuation format:
  3641.  code    decimal arg    thousands
  3642.  00h    .    ,    ,
  3643.  01h    ,    .    .
  3644.  02h    .    ;    ;
  3645.  03h    ,    ;    .
  3646.  04h    .    ,    " "
  3647.  05h    ,    .    " "
  3648.  06h    .    ;    " "
  3649.  07h    ,    ;    " "
  3650.  
  3651. (Table 2470)
  3652. Values for HP 95LX current date format:
  3653.  00h    dd-mmm-yy
  3654.  01h    dd-mmm
  3655.  02h    mmm-yy
  3656.  03h    mm/dd/yy
  3657.  04h    dd/mm/yy
  3658.  05h    dd.mm.yy
  3659.  06h    yy-mm-dd
  3660.  07h    mm/dd
  3661.  08h    dd/mm
  3662.  09h    dd.mm
  3663.  0Ah    mm-dd
  3664.  
  3665. (Table 2471)
  3666. Values for HP 95LX current time format:
  3667.  00h    HH:MM:SS am/pm
  3668.  01h    HH:MM am/pm
  3669.  02h    HH:MM:SS
  3670.  03h    HH.MM.SS
  3671.  04h    HH,MM,SS
  3672.  05h    HHhMMmSSs
  3673.  06h    HH:MM
  3674.  07h    HH.MM
  3675.  08h    HH,MM
  3676.  09h    HHhMMm
  3677.  
  3678. (Table 2472)
  3679. Values for HP 95LX keyboard layout:
  3680.  0001h    Belgium
  3681.  0002h    French Canadian
  3682.  0004h    Denmark
  3683.  0008h    Finland
  3684.  0010h    French
  3685.  0020h    Finland
  3686.  0040h    Italy
  3687.  0080h    Netherlands
  3688.  0100h    Norway
  3689.  0200h    Portugal
  3690.  0400h    Spain
  3691.  0800h    Sweden
  3692.  1000h    Swiss French
  3693.  2000h    Swiss German
  3694.  4000h    United Kingdom
  3695.  8000h    USA
  3696. --------b-60----DI0B0A-----------------------
  3697. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  3698.     DI = 0B0Ah
  3699.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3700.         DWORD    pointer to ???
  3701.         DWORD    pointer to ???
  3702. Return: ???
  3703.     STACK unchanged
  3704. SeeAlso: INT 60/DI=0B09h
  3705. --------b-60----DI0B0B-----------------------
  3706. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  3707.     DI = 0B0Bh
  3708.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3709.         DWORD    pointer to ???
  3710. Return: ???
  3711.     STACK unchanged
  3712. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  3713. --------b-60----DI0B0C-----------------------
  3714. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  3715.     DI = 0B0Ch
  3716.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3717.         DWORD    pointer to ???
  3718. Return: ???
  3719.     STACK unchanged
  3720. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  3721. --------b-60----DI0B0D-----------------------
  3722. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  3723.     DI = 0B0Dh
  3724.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3725.         DWORD    pointer to ???
  3726.         DWORD    pointer to ???
  3727.         DWORD    pointer to ???
  3728. Return: ???
  3729.     STACK unchanged
  3730. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  3731. --------b-60----DI0B0E-----------------------
  3732. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  3733.     DI = 0B0Eh
  3734.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3735.         WORD    ???
  3736.         WORD    ???
  3737.         WORD    ???
  3738.         DWORD    pointer to ???
  3739.         DWORD    pointer to ???
  3740. Return: DX:AX -> ???
  3741.     STACK unchanged
  3742. --------b-60----DI0B0F-----------------------
  3743. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  3744.     DI = 0B0Fh
  3745.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3746. Return: DX:AX -> system settings record (see #2468)
  3747.     STACK unchanged
  3748. SeeAlso: INT 60/DI=0B09h
  3749. --------b-60----DI0B10-----------------------
  3750. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  3751.     DI = 0B10h
  3752.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3753.         WORD    ???
  3754.         DWORD    pointer to ???
  3755.         DWORD    pointer to ???
  3756. Return: ???
  3757.     STACK unchanged
  3758. --------b-60----DI0B11-----------------------
  3759. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  3760.     DI = 0B11h
  3761.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3762.         WORD    ???
  3763.         DWORD    pointer to ???
  3764.         DWORD    pointer to ???
  3765. Return: ???
  3766.     STACK unchanged
  3767. --------b-60----DI0B12-----------------------
  3768. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  3769.     DI = 0B12h
  3770.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3771.         WORD    new parsing rule (see #2473)
  3772. Return: ???
  3773.     STACK unchanged
  3774. SeeAlso: INT 60/DI=0B13h
  3775.  
  3776. (Table 2473)
  3777. Values for HP 95LX date parsing rule:
  3778.  01h    day-month-year
  3779.  02h    month-day-year
  3780.  03h    year-month-day
  3781.  04h    "DMYO"
  3782.  05h    "MDYO"
  3783.  OR with 08h to get any year
  3784. --------b-60----DI0B13-----------------------
  3785. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  3786.     DI = 0B13h
  3787.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3788.         WORD    new parsing rule (see #2474)
  3789. Return: ???
  3790.     STACK unchanged
  3791. SeeAlso: INT 60/DI=0B12h
  3792.  
  3793. (Table 2474)
  3794. Values for HP 95LX time parsing rule:
  3795.  01h    HH:MM:SS (am/pm)
  3796.  02h    HH:MM:SS (24hr)
  3797.  03h    HHMM:SS (24hr)
  3798.  04h    HH:MM:SS.hh (24hr)
  3799.  05h    HH:MM (am/pm)
  3800.  06h    HH:MM (24hr)
  3801.  07h    HHMM (24hr)
  3802. --------b-60----DI0B14-----------------------
  3803. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  3804.     DI = 0B14h
  3805.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3806. Return: ???
  3807.     STACK unchanged
  3808. --------b-60----DI0B15-----------------------
  3809. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  3810.     DI = 0B15h
  3811.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3812.         WORD    ???
  3813. Return: ???
  3814.     STACK unchanged
  3815. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3816. --------b-60----DI0C00-----------------------
  3817. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  3818.     DI = 0C00h
  3819.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3820. Return: ???
  3821.     STACK unchanged
  3822. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  3823. --------b-60----DI0C01-----------------------
  3824. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  3825.     DI = 0C01h
  3826.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3827. Return: ???
  3828.     STACK unchanged
  3829. Note:    relinquishes control of printer
  3830. SeeAlso: INT 60/DI=0C00h
  3831. --------b-60----DI0C02-----------------------
  3832. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  3833.     DI = 0C02h
  3834.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3835.         DWORD    pointer to data to be written
  3836.         WORD    length of data
  3837. Return: ???
  3838.     STACK unchanged
  3839. SeeAlso: INT 60/DI=0C00h
  3840. --------b-60----DI0C03-----------------------
  3841. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  3842.     DI = 0C03h
  3843.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3844. Return: ???
  3845.     STACK unchanged
  3846. SeeAlso: INT 60/DI=0C00h
  3847. --------b-60----DI0C04-----------------------
  3848. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  3849.     DI = 0C04h
  3850.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3851.         WORD    ???
  3852.         DWORD    pointer to ???
  3853. Return: ???
  3854.     STACK unchanged
  3855. --------b-60----DI0C05-----------------------
  3856. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  3857.     DI = 0C05h
  3858.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3859.         WORD    ???
  3860.         DWORD    pointer to ???
  3861. Return: ???
  3862.     STACK unchanged
  3863. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3864. --------b-60----DI0E00-----------------------
  3865. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  3866.     DI = 0E00h
  3867.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3868.         DWORD    pointer to ???
  3869. Return: ???
  3870.     STACK unchanged
  3871. SeeAlso: #2475,INT 60/DI=0E01h,INT 60/DI=0E02h
  3872.  
  3873. (Table 2475)
  3874. Values for HP 95LX error code:
  3875.  0000h    successful
  3876.  FFF1h    "E_BUSY"
  3877.  FFF2h    timeout
  3878.  FFF3h    framing error
  3879.  FFF4h    parity error
  3880.  FFF5h    overrun error
  3881.  FFF6h    "E_EMPTY"
  3882.  FFF7h    "E_CONECT"
  3883.  FFF8h    not open
  3884.  FFF9h    out of memory
  3885.  FFFAh    buffer overflow
  3886.  FFFBh    "E_NOFIT"
  3887.  FFFCh    unsupported
  3888.  FFFDh    "E_IVOPR"
  3889.  FFFEh    "E_IVCHN"
  3890.  FFFFh    "E_REOPEN"
  3891. --------b-60----DI0E01-----------------------
  3892. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  3893.     DI = 0E01h
  3894.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3895.         DWORD    pointer to WORD buffer for comm channel handle
  3896.         WORD    communications line number (01h-04h)
  3897. Return: ???
  3898.     STACK unchanged
  3899. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  3900. --------b-60----DI0E02-----------------------
  3901. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  3902.     DI = 0E02h
  3903.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3904.         WORD    comm channel handle
  3905. Return: ???
  3906.     STACK unchanged
  3907. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  3908. --------b-60----DI0E03-----------------------
  3909. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  3910.     DI = 0E03h
  3911.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3912.         WORD    ???
  3913. Return: ???
  3914.     STACK unchanged
  3915. --------b-60----DI0E04-----------------------
  3916. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  3917.     DI = 0E04h
  3918.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3919.         WORD    ???
  3920.         WORD    ???
  3921. Return: ???
  3922.     STACK unchanged
  3923. --------b-60----DI0E05-----------------------
  3924. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  3925.     DI = 0E05h
  3926.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3927.         WORD    ???
  3928.         DWORD    pointer to ???
  3929. Return: ???
  3930.     STACK unchanged
  3931. --------b-60----DI0E06-----------------------
  3932. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  3933.     DI = 0E06h
  3934.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3935.         WORD    comm channel handle
  3936.         WORD    reset options (see #2476)
  3937. Return: ???
  3938.     STACK unchanged
  3939.  
  3940. Bitfields for HP 95LX reset options:
  3941. Bit(s)    Description    (Table 2476)
  3942.  0    reset line
  3943.  1    flush transmit buffer
  3944.  2    flush receive buffer
  3945.  3    reset modem
  3946.  4    reset receiver's ^S state
  3947.  5    reset transmitter's ^S state
  3948. --------b-60----DI0E07-----------------------
  3949. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  3950.     DI = 0E07h
  3951.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3952.         WORD    ???
  3953. Return: ???
  3954.     STACK unchanged
  3955. --------b-60----DI0E08-----------------------
  3956. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  3957.     DI = 0E08h
  3958.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3959.         WORD    comm channel handle
  3960.         DWORD    pointer to data to be sent
  3961.         WORD    option flags
  3962.             bit 0: send partial buffer
  3963.             bit 1: turn on receiver after sending
  3964.         DWORD    pointer to WORD containing length of data to be sent
  3965. Return: length WORD updated to contain number of bytes actually sent???
  3966.     STACK unchanged
  3967. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  3968. --------b-60----DI0E09-----------------------
  3969. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  3970.     DI = 0E09h
  3971.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3972.         WORD    ???
  3973.         DWORD    pointer to ??? WORD
  3974.         DWORD    pointer to ??? WORD
  3975. Return: ???
  3976.     STACK unchanged
  3977. SeeAlso: INT 60/DI=0E0Ah
  3978. --------b-60----DI0E0A-----------------------
  3979. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  3980.     DI = 0E0Ah
  3981.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3982.         WORD    comm channel handle
  3983.         DWORD    pointer to WORD to get receive buffer size
  3984.         DWORD    pointer to WORD to get free bytes in receive buffer
  3985. Return: ???
  3986.     STACK unchanged
  3987. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  3988. --------b-60----DI0E0B-----------------------
  3989. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  3990.     DI = 0E0Bh
  3991.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3992.         WORD    comm channel handle
  3993.         DWORD    pointer to data buffer
  3994.         DWORD    pointer to WORD (call) length of data buffer
  3995.                     (ret) number of bytes received
  3996. Return: ???
  3997.     STACK unchanged
  3998. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  3999. --------b-60----DI0E0C-----------------------
  4000. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  4001.     DI = 0E0Ch
  4002.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4003.         WORD    ???
  4004.         DWORD    pointer to ???
  4005.         WORD    ???
  4006. Return: ???
  4007.     STACK unchanged
  4008. --------b-60----DI0E0D-----------------------
  4009. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  4010.     DI = 0E0Dh
  4011.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4012.         WORD    ???
  4013.         DWORD    pointer to ???
  4014.         WORD    ???
  4015. Return: ???
  4016.     STACK unchanged
  4017. --------b-60----DI0E0E-----------------------
  4018. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  4019.     DI = 0E0Eh
  4020.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4021.         WORD    ???
  4022.         WORD    ???
  4023. Return: ???
  4024.     STACK unchanged
  4025. --------b-60----DI0E0F-----------------------
  4026. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  4027.     DI = 0E0Fh
  4028.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4029.         WORD    ???
  4030. Return: ???
  4031.     STACK unchanged
  4032. --------b-60----DI0E10-----------------------
  4033. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  4034.     DI = 0E10h
  4035.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4036.         WORD    ???
  4037. Return: ???
  4038.     STACK unchanged
  4039. --------b-60----DI0E11-----------------------
  4040. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  4041.     DI = 0E11h
  4042.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4043.         WORD    ???
  4044.         WORD    ???
  4045. Return: ???
  4046.     STACK unchanged
  4047. --------b-60----DI0E12-----------------------
  4048. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  4049.     DI = 0E12h
  4050.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4051.         WORD    ???
  4052. Return: ???
  4053.     STACK unchanged
  4054. --------b-60----DI0E13-----------------------
  4055. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  4056.     DI = 0E13h
  4057.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4058.         WORD    ???
  4059. Return: ???
  4060.     STACK unchanged
  4061. --------b-60----DI0E14-----------------------
  4062. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  4063.     DI = 0E14h
  4064.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4065.         WORD    comm channel handle
  4066.         DWORD    pointer to communications settings (see #2477)
  4067. Return: ???
  4068.     STACK unchanged
  4069. SeeAlso: INT 60/DI=0E15h
  4070.  
  4071. Format of HP 95LX communications settings:
  4072. Offset    Size    Description    (Table 2477)
  4073.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  4074.  01h    WORD    baud rate divisor (115200/baud_rate)
  4075.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  4076.  04h    BYTE    stop bits (00h one, 04h two)
  4077.  05h    BYTE    data bits - 5
  4078.  06h    BYTE    software handshake
  4079.         01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  4080.  07h    BYTE    infrared (01h off, 02h on)
  4081.  08h    BYTE    duplex (01h half, 02h full)
  4082.  09h    BYTE    echo (01h echo, 02h no echo)
  4083. --------b-60----DI0E15-----------------------
  4084. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  4085.     DI = 0E15h
  4086.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4087.         WORD    ???
  4088.         DWORD    pointer to buffer for settings (see #2477)
  4089. Return: ???
  4090.     STACK unchanged
  4091. SeeAlso: INT 60/DI=0E14h
  4092. --------b-60----DI0E16-----------------------
  4093. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  4094.     DI = 0E16h
  4095.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4096.         WORD    ???
  4097.         WORD    ???
  4098.         WORD    ???
  4099.         WORD    ???
  4100.         WORD    ???
  4101. Return: ???
  4102.     STACK unchanged
  4103. --------b-60----DI0E17-----------------------
  4104. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  4105.     DI = 0E17h
  4106.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4107.         WORD    ???
  4108. Return: ???
  4109.     STACK unchanged
  4110. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4111. --------b-60----DI0F00-----------------------
  4112. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  4113.     DI = 0F00h
  4114.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4115.         WORD    ???
  4116.         DWORD    pointer to ???
  4117.         WORD    ???
  4118.         DWORD    pointer to ???
  4119. Return: ???
  4120.     STACK unchanged
  4121. --------b-60----DI0F01-----------------------
  4122. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  4123.     DI = 0F01h
  4124.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4125.         DWORD    pointer to ASCIZ title string
  4126. Return: ???
  4127.     STACK unchanged
  4128. --------b-60----DI0F02-----------------------
  4129. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  4130.     DI = 0F02h
  4131.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4132.         DWORD    pointer to ???
  4133. Return: ???
  4134.     STACK unchanged
  4135. --------b-60----DI0F03-----------------------
  4136. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  4137.     DI = 0F03h
  4138.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4139.         DWORD    pointer to first line of message
  4140.         WORD    length of first line
  4141.         DWORD    pointer to second line of message
  4142.         WORD    length of second line
  4143. Return: ???
  4144.     STACK unchanged
  4145. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  4146. --------b-60----DI0F04-----------------------
  4147. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  4148.     DI = 0F04h
  4149.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4150. Return: ???
  4151.     STACK unchanged
  4152. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  4153. --------b-60----DI0F05-----------------------
  4154. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  4155.     DI = 0F05h
  4156.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4157. Return: DX:AX -> ???
  4158.     STACK unchanged
  4159. --------b-60----DI0F06-----------------------
  4160. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  4161.     DI = 0F06h
  4162.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4163. Return: DX:AX -> ???
  4164.     STACK unchanged
  4165. --------b-60----DI0F07-----------------------
  4166. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  4167.     DI = 0F07h
  4168.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4169. Return: DX:AX -> ???
  4170.     STACK unchanged
  4171. --------b-60----DI0F08-----------------------
  4172. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  4173.     DI = 0F08h
  4174.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4175.         ???
  4176. Return: ???
  4177.     STACK unchanged
  4178. --------b-60----DI0F09-----------------------
  4179. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  4180.     DI = 0F09h
  4181.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4182.         DWORD    pointer to first line of message
  4183.         WORD    length of first line
  4184.         DWORD    pointer to second line of message
  4185.         WORD    length of second line
  4186.         DWORD    pointer to third line of message
  4187.         WORD    length of third line
  4188. Return: ???
  4189.     STACK unchanged
  4190. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  4191. --------b-60----DI0F0A-----------------------
  4192. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  4193.     DI = 0F0Ah
  4194.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4195. Return: ???
  4196.     STACK unchanged
  4197. SeeAlso: INT 60/DI=0F0Bh
  4198. --------b-60----DI0F0B-----------------------
  4199. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  4200.     DI = 0F0Bh
  4201.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4202. Return: ???
  4203.     STACK unchanged
  4204. SeeAlso: INT 60/DI=0F0Ah
  4205. --------b-60----DI0F0C-----------------------
  4206. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  4207.     DI = 0F0Ch
  4208.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4209.         ???
  4210. Return: ???
  4211.     STACK unchanged
  4212. --------b-60----DI0F0D-----------------------
  4213. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  4214.     DI = 0F0Dh
  4215.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4216.         DWORD    pointer to ???
  4217. Return: DX:AX -> ???
  4218.     STACK unchanged
  4219. --------b-60----DI0F0E-----------------------
  4220. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  4221.     DI = 0F0Eh
  4222.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4223.         DWORD    pointer to ???
  4224. Return: DX:AX -> ???
  4225.     STACK unchanged
  4226. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4227. --------b-60----DI1005-----------------------
  4228. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  4229.     DI = 1005h
  4230.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4231. Return: ???
  4232.     STACK unchanged
  4233. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  4234. --------b-60----DI1200-----------------------
  4235. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  4236.     DI = 1200h
  4237.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4238.         DWORD    pointer to ???
  4239. Return: ???
  4240.     STACK unchanged
  4241. --------b-60----DI1201-----------------------
  4242. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  4243.     DI = 1201h
  4244.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4245.         WORD    ???
  4246. Return: DX:AX -> ???
  4247.     STACK unchanged
  4248. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4249. --------b-60----DI1202-----------------------
  4250. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  4251.     DI = 1202h
  4252.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4253. Return: DX:AX -> ???
  4254.     STACK unchanged
  4255. --------b-60----DI1203-----------------------
  4256. INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
  4257.     DI = 1203h
  4258.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4259. Return: ???
  4260.     STACK unchanged
  4261. --------b-60----DI1300-----------------------
  4262. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  4263.     DI = 1300h
  4264.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4265.         DWORD    pointer to ???
  4266.         DWORD    pointer to ???
  4267.         WORD    ???
  4268. Return: ???
  4269.     STACK unchanged
  4270. --------b-60----DI1301-----------------------
  4271. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  4272.     DI = 1301h
  4273.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4274.         DWORD    pointer to ???
  4275. Return: ???
  4276.     STACK unchanged
  4277. --------b-60----DI1302-----------------------
  4278. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  4279.     DI = 1302h
  4280.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4281.         DWORD    pointer to ???
  4282.         WORD    ???
  4283. Return: ???
  4284.     STACK unchanged
  4285. --------b-60----DI1303-----------------------
  4286. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  4287.     DI = 1303h
  4288.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4289.         DWORD    pointer to ???
  4290. Return: ???
  4291.     STACK unchanged
  4292. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4293. --------b-60----DI1400-----------------------
  4294. INT 60 u - HP 95LX System Manager - "M_ColInit"
  4295.     DI = 1400h
  4296.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4297. Return: AX = ???
  4298.     STACK unchanged
  4299. --------b-60----DI1401-----------------------
  4300. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  4301.     DI = 1401h
  4302.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4303.         DWORD    pointer to ???
  4304.         WORD    ???
  4305.         DWORD    pointer to ???
  4306.         WORD    ???
  4307. Return: ???
  4308.     STACK unchanged
  4309. --------b-60----DI1402-----------------------
  4310. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  4311.     DI = 1402h
  4312.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4313.         ???
  4314. Return: ???
  4315.     STACK unchanged
  4316. --------b-60----DI1403-----------------------
  4317. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  4318.     DI = 1403h
  4319.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4320.         ???
  4321. Return: ???
  4322.     STACK unchanged
  4323. --------b-60----DI1404-----------------------
  4324. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  4325.     DI = 1404h
  4326.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4327.         DWORD    pointer to ???
  4328.         WORD    ???
  4329. Return: ???
  4330.     STACK unchanged
  4331. --------b-60----DI1405-----------------------
  4332. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  4333.     DI = 1405h
  4334.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4335.         DWORD    pointer to ???
  4336.         WORD    ???
  4337.         DWORD    pointer to ???
  4338.         WORD    ???
  4339.         WORD    ???
  4340. Return: ???
  4341.     STACK unchanged
  4342. --------b-60----DI1406-----------------------
  4343. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  4344.     DI = 1406h
  4345.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4346.         DWORD    pointer to ???
  4347.         WORD    ???
  4348. Return: ???
  4349.     STACK unchanged
  4350. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4351. --------b-60----DI1500-----------------------
  4352. INT 60 u - HP 95LX System Manager - "GrDispInit"
  4353.     DI = 1500h
  4354.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4355.         ???
  4356. Return: ???
  4357.     STACK unchanged
  4358. --------b-60----DI1501-----------------------
  4359. INT 60 u - HP 95LX System Manager - "GrDispClear"
  4360.     DI = 1501h
  4361.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4362.         ???
  4363. Return: ???
  4364.     STACK unchanged
  4365. --------b-60----DI1502-----------------------
  4366. INT 60 u - HP 95LX System Manager - "GrDispDot"
  4367.     DI = 1502h
  4368.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4369.         ???
  4370. Return: ???
  4371.     STACK unchanged
  4372. --------b-60----DI1503-----------------------
  4373. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  4374.     DI = 1503h
  4375.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4376.         ???
  4377. Return: ???
  4378.     STACK unchanged
  4379. --------b-60----DI1504-----------------------
  4380. INT 60 u - HP 95LX System Manager - "GrDispFill"
  4381.     DI = 1504h
  4382.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4383.         ???
  4384. Return: ???
  4385.     STACK unchanged
  4386. --------b-60----DI1505-----------------------
  4387. INT 60 u - HP 95LX System Manager - "GrDispRead"
  4388.     DI = 1505h
  4389.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4390.         ???
  4391. Return: ???
  4392.     STACK unchanged
  4393. --------b-60----DI1506-----------------------
  4394. INT 60 u - HP 95LX System Manager - "GrDispString"
  4395.     DI = 1506h
  4396.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4397.         ???
  4398. Return: ???
  4399.     STACK unchanged
  4400. --------b-60----DI1507-----------------------
  4401. INT 60 u - HP 95LX System Manager - "GrDispPan"
  4402.     DI = 1507h
  4403.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4404.         ???
  4405. Return: ???
  4406.     STACK unchanged
  4407. --------b-60----DI1508-----------------------
  4408. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  4409.     DI = 1508h
  4410.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4411.         ???
  4412. Return: ???
  4413.     STACK unchanged
  4414. --------b-60----DI1509-----------------------
  4415. INT 60 u - HP 95LX System Manager - "GrDispSave"
  4416.     DI = 1509h
  4417.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4418.         ???
  4419. Return: ???
  4420.     STACK unchanged
  4421. --------b-60----DI150A-----------------------
  4422. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  4423.     DI = 150Ah
  4424.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4425.         ???
  4426. Return: ???
  4427.     STACK unchanged
  4428. --------b-60----DI150B-----------------------
  4429. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  4430.     DI = 150Bh
  4431.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4432.         ???
  4433. Return: ???
  4434.     STACK unchanged
  4435. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4436. --------b-60----DI1604-----------------------
  4437. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  4438.     DI = 1604h
  4439.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  4440.         ???
  4441. Return: ???
  4442.     STACK unchanged
  4443. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  4444. --------G-6000-------------------------------
  4445. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  4446.     AH = 00h
  4447. Return: AX = 0000h    profiling is off
  4448.         otherwise profiling is on
  4449. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  4450.       Issue 47
  4451. SeeAlso: AH=01h"SYS_PROF",02h"SYS_PROF"
  4452. --------G-6000-------------------------------
  4453. INT 60 - MDEBUG - GET STATUS
  4454.     AH = 00h
  4455.     DS:SI -> password or a null byte
  4456. Return: AX = return code
  4457.         FFFEh password is invalid
  4458.         FFFDh display mode is invalid
  4459.         else successful
  4460.         ES = value of the monitor register SE
  4461.         DI = value of the monitor register OF
  4462.         CH = monitor color
  4463.         CL = interpreter color
  4464.         BH = monitor start line
  4465.         BL = interpreter start line
  4466.         AH = makecode of the hotkey
  4467.         AL = ASCII code of the hotkey
  4468.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  4469.               hotkey (coded as for the keyboard flag at 0040h:0017h)
  4470.         DH = basic process number for the communication with drivers
  4471.               process number for the display driver, DH+1 = process
  4472.               number for the command driver(s)
  4473.     DS:SI -> MDEBUG identification table (see #2478)
  4474. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  4475.       Schemmer, including a memory monitor, an interpreter, and a
  4476.       disassembler
  4477. Notes:    MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  4478.       through INT 67; the interrupt handler is preceded by the signature
  4479.       "USERINT" and is not chained
  4480.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  4481.       passwords are active; enough stack space must be provided for an
  4482.       INT 10h call (which MDEBUG uses while prompting for the password)
  4483. SeeAlso: AH=02h"MDEBUG"
  4484. Index:    hotkeys;MDEBUG
  4485.  
  4486. Format of MDEBUG identification table:
  4487. Offset    Size    Description    (Table 2478)
  4488.  -2    WORD    entry offset
  4489.  00h    WORD    CS of MDEBUG
  4490.  02h    DWORD    old INT 08h vector
  4491.  06h    DWORD    old INT 09h vector
  4492.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  4493.  0Eh    BYTE    length of version string
  4494.  0Fh  N BYTEs    version string
  4495. --------N-600000-----------------------------
  4496. INT 60 - RIFS - CLIENT - INSTALLATION CHECK
  4497.     AX = 0000h
  4498. Return: AX = 1234h if installed
  4499.     CF clear
  4500. Program: RIFS is the Remote Installable File System by "kyle"
  4501. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  4502. Note:    the installation check consists of testing for the signature "RIFS"
  4503.       immediately preceding the interrupt handler
  4504. SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=56000h
  4505. --------N-600001-----------------------------
  4506. INT 60 - RIFS - CLIENT - UNINSTALL
  4507.     AX = 0001h
  4508. Return: CF clear if successful
  4509. SeeAlso: AX=0000h,AX=0009h
  4510. --------N-600002-----------------------------
  4511. INT 60 - RIFS - CLIENT - REMAP DRIVE
  4512.     AX = 0002h
  4513.     BH = local drive number
  4514.     BL = remote drive number
  4515. Return: CF clear if successful
  4516.     CF set on error
  4517. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"
  4518. --------N-600003-----------------------------
  4519. INT 60 - RIFS - CLIENT - UNMAP DRIVE
  4520.     AX = 0003h
  4521.     BL = drive to unmap
  4522. Return: CF clear if successful
  4523.     CF set on error
  4524. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"
  4525. --------N-600004-----------------------------
  4526. INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
  4527.     AX = 0004h
  4528. Return: CF clear if successful
  4529.     CF set on error
  4530. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  4531. --------N-600005-----------------------------
  4532. INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
  4533.     AX = 0005h
  4534. Return: CF clear if successful
  4535.         ES:BX -> translation table
  4536.     CF set on error
  4537. SeeAlso: AX=0000h,AX=0006h,AX=0007h
  4538. --------N-600006-----------------------------
  4539. INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
  4540.     AX = 0006h
  4541. Return: CF clear if successful
  4542.         ES:BX -> statistics table
  4543.     CF set on error
  4544. SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000Ah
  4545. --------N-600007-----------------------------
  4546. INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
  4547.     AX = 0007h
  4548. Return: CF clear if successful
  4549.         CX = number of entries
  4550.         ES:BX -> port mapping table
  4551.     CF set on error
  4552. SeeAlso: AX=0000h,AX=0005h
  4553. --------N-600008-----------------------------
  4554. INT 60 - RIFS - SERVER - INSTALLATION CHECK
  4555.     AX = 0008h
  4556. Return: CF clear if successful
  4557.     CF set on error
  4558. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  4559. Note:    the installation check consists of testing for the signature "RIFS"
  4560.       immediately preceding the interrupt handler
  4561. SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000Bh
  4562. --------N-600009-----------------------------
  4563. INT 60 - RIFS - SERVER - UNINSTALL
  4564.     AX = 0009h
  4565. Return: CF clear if successful
  4566.     CF set on error
  4567. SeeAlso: AX=0001h,AX=0008h
  4568. --------N-60000A-----------------------------
  4569. INT 60 - RIFS - SERVER - GET STATISTICS TABLE
  4570.     AX = 000Ah
  4571. Return: CF clear if successful
  4572.         ES:BX -> statistics table
  4573.     CF set on error
  4574. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Bh
  4575. --------N-60000B-----------------------------
  4576. INT 60 - RIFS - SERVER - RESET
  4577.     AX = 000Bh
  4578. Return: CF clear if successful
  4579.     CF set on error
  4580. Note:    closes all open files
  4581. SeeAlso: AX=0008h,AX=0009h
  4582. --------G-6001-------------------------------
  4583. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  4584.     AH = 01h
  4585.     DS:SI -> password or a null byte
  4586. Return: AX = return code
  4587.         FFFEh password is invalid
  4588.         FFFDh display mode is invalid
  4589.         else successful
  4590.         ES:DI point to the help registers of MDEBUG
  4591.            ES:DI-02h  -> R0 (WORD)
  4592.            ES:DI      -> R1 (WORD)
  4593.            ES:DI+02h  -> R2 (WORD)
  4594.            ES:DI+04h  -> R3 (WORD)
  4595.            ...
  4596.            ES:DI+0Eh  -> R8 (WORD)
  4597. --------G-6001-------------------------------
  4598. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  4599.     AH = 01h
  4600. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  4601.       Issue 47
  4602. SeeAlso: AH=00h"SYS_PROF",02h"SYS_PROF"
  4603. --------N-6001FF-----------------------------
  4604. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  4605.     AX = 01FFh
  4606.     BX = handle returned by function 02h
  4607. Return: CF set on error
  4608.         DH = error code (see #2479)
  4609.     CF clear if successful
  4610.         BX = version
  4611.         CH = network interface class (see #2480)
  4612.         DX = interface type (see #2480)
  4613.         CL = number
  4614.         DS:SI -> name
  4615.         AL = driver functions supported
  4616.         01h basic
  4617.         02h basic and extended
  4618.         05h basic and high-performance
  4619.         06h basic, high-performance, and extended
  4620.         FFh not installed
  4621. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  4622.       the packet driver specification
  4623.  
  4624. (Table 2479)
  4625. Values for Packet Driver error code:
  4626.  01h "BAD_HANDLE"    invalid handle number
  4627.  02h "NO_CLASS"        no interfaces of the specified class found
  4628.  03h "NO_TYPE"        no interfaces of the specified type found
  4629.  04h "NO_NUMBER"    no interfaces of the specified number found
  4630.  05h "BAD_TYPE"        bad packet type
  4631.  06h "NO_MULTICAST"    interface does not support multicast messages
  4632.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  4633.  08h "BAD_MODE"        invalid receiver mode
  4634.  09h "NO_SPACE"        insufficient space
  4635.  0Ah "TYPE_INUSE"    type accessed but never released
  4636.  0Bh "BAD_COMMAND"    bad command
  4637.  0Ch "CANT_SEND"    packet could not be sent
  4638.  0Dh "CANT_SET"        hardware address could not be changed
  4639.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  4640.  0Fh "CANT_RESET"    could not reset interface
  4641.  
  4642. (Table 2480)
  4643. Values for Packet Driver network interface classes/types:
  4644.     Class 01h  Ethernet/IEEE 802.3
  4645.     01h 3COM 3C500/3C501
  4646.     02h 3COM 3C505
  4647.     03h MICOM-Interlan NI5010
  4648.     04h BICC Data Networks 4110
  4649.     05h BICC Data Networks 4117
  4650.     06h MICOM-Interlan NP600
  4651.     08h Ungermann-Bass PC-NIC
  4652.     09h Univation NC-516
  4653.     0Ah TRW PC-2000
  4654.     0Bh MICOM-Interlan NI5210
  4655.     0Ch 3COM 3C503
  4656.     0Dh 3COM 3C523
  4657.     0Eh Western Digital WD8003
  4658.     0Fh Spider Systems S4
  4659.     10h Torus Frame Level
  4660.     11h 10Net Communications
  4661.     12h Gateway PC-bus
  4662.     13h Gateway AT-bus
  4663.     14h Gateway MCA-bus
  4664.     15h IMC PCnic
  4665.     16h IMC PCnic II
  4666.     17h IMC PCnic 8-bit
  4667.     18h Tigan Communications
  4668.     19h Micromatic Research
  4669.     1Ah Clarkson "Multiplexor"
  4670.     1Bh D-Link 8-bit
  4671.     1Ch D-Link 16-bit
  4672.     1Dh D-Link PS/2
  4673.     1Eh Research Machines 8
  4674.     1Fh Research Machines 16
  4675.     20h Research Machines MCA
  4676.     21h Radix Microsystems EXM1 16-bit
  4677.     22h Interlan Ni9210
  4678.     23h Interlan Ni6510
  4679.     24h Vestra LANMASTER 16-bit
  4680.     25h Vestra LANMASTER 8-bit
  4681.     26h Allied Telesis PC/XT/AT
  4682.     27h Allied Telesis NEC PC-98
  4683.     28h Allied Telesis Fujitsu FMR
  4684.     29h Ungermann-Bass NIC/PS2
  4685.     2Ah Tiara LANCard/E AT
  4686.     2Bh Tiara LANCard/E MC
  4687.     2Ch Tiara LANCard/E TP
  4688.     2Dh Spider Communications SpiderComm 8
  4689.     2Eh Spider Communications SpiderComm 16
  4690.     2Fh AT&T Starlan NAU
  4691.     30h AT&T Starlan-10 NAU
  4692.     31h AT&T Ethernet NAU
  4693.     32h Intel smart card
  4694.     33h Xircom Packet Adapter
  4695.     34h Aquila Ethernet
  4696.     35h Novell NE1000
  4697.     36h Novell NE2000
  4698.     37h SMC PC-510
  4699.     38h AT&T Fiber NAU
  4700.     39h NDIS to Packet Driver adapter
  4701.     3Ah Racal-InterLan ES3210
  4702.     3Bh General Systems ISDN simulated Ethernet
  4703.     3Ch Hewlett-Packard
  4704.     3Dh IMC EtherNic-8
  4705.     3Eh IMC EtherNic-16
  4706.     3Fh IMC EtherNic-MCA
  4707.     40h NetWorth EtherNext
  4708.     41h Dataco Scanet
  4709.     42h DEC DEPCA
  4710.     43h C-Net
  4711.     44h Gandalf LANLine
  4712.     45h Apricot built-in
  4713.     46h David Systems Ether-T
  4714.     47h ODI to Packet Driver adapter (see also AX=5100h)
  4715.     48h AMD Am21110-16
  4716.     49h Intel ICD Network controller family
  4717.     4Ah Intel ICD PCL2
  4718.     4Bh Intel ICD PCL2A
  4719.     4Ch AT&T LANPacer
  4720.     4Dh AT&T LANPacer+
  4721.     4Eh AT&T EVB
  4722.     4Fh AT&T StarStation
  4723.     50h SLIP simulated ethernet
  4724.     51h Racal-Interlan NIA310
  4725.     52h Racal-Interlan NISE
  4726.     53h Racal-Interlan NISE30
  4727.     54h Racal-Interlan NI6610
  4728.     55h Ethernet over IP/UDP
  4729.     56h ICL EtherTeam 16
  4730.     57h David Systems
  4731.     58h NCR WaveLAN
  4732.     59h Thomas Contrad TC5045
  4733.     5Ah Russ Nelson's Parallel Port driver
  4734.     5Bh Intell EtherExpress 16
  4735.     5Ch IBMTOKEN
  4736.     5Dh Zenith Z-Note
  4737.     5Eh 3Com 3C509
  4738.     5Fh Mylex LNE390
  4739.     60h Madge Smart Ringnode
  4740.     61h Novell NE2100
  4741.     62h Allied Telesis 1500
  4742.     63h Allied Telesis 1700
  4743.     64h Fujitsu EtherCoupler
  4744.     Class 02h  ProNET-10
  4745.     01h Proteon p1300
  4746.     02h Proteon p1800
  4747.     Class 03h  IEEE 802.5/ProNet-4 (without expanded RIFs)
  4748.     01h IBM Token-Ring Adapter
  4749.     02h Proteon p1340
  4750.     03h Proteon p1344
  4751.     04h Gateway PC-bus
  4752.     05h Gateway AT-bus
  4753.     06h Gateway MCA-bus
  4754.     07h Madge board
  4755.     39h NDIS to Packet Driver adapter
  4756.     47h ODI to Packet Driver adapter
  4757.     Class 04h  Omninet
  4758.     Class 05h  Appletalk
  4759.     01h ATALK.SYS adapter
  4760.     Class 06h  Serial Line
  4761.     01h Clarkson 8250-SLIP
  4762.     02h Clarkson "Multiplexor"
  4763.     03h Eicon Technologies
  4764.     Class 07h  StarLAN (subsumed by Ethernet class)
  4765.     Class 08h  ARCnet
  4766.     01h Datapoint RIM
  4767.     Class 09h  AX.25
  4768.     01h Ottawa PI card
  4769.     02h Eicon Technologies
  4770.     Class 0Ah  KISS
  4771.     Class 0Bh  IEEE 802.3 with 802.2 headers
  4772.     types same as for class 01h
  4773.     Class 0Ch  FDDI with 802.2 headers
  4774.     01h Western Digital
  4775.     02h Frontier Technology
  4776.     Class 0Dh  Internet X.25
  4777.     01h Western Digital
  4778.     02h Frontier Technology
  4779.     03h Emerging Technologies
  4780.     04h The Software Forge
  4781.     05h Link Data Intelligent X.25
  4782.     06h Eicon Technologies
  4783.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  4784.     01h NT LANSTAR/8
  4785.     02h NT LANSTAR/MC
  4786.     Class 0Fh  SLFP (MIT serial specification)
  4787.     01h MERIT
  4788.     Class 10h  PPP (Point-to-Point Protocol)
  4789.     01h 8250/16550 UART
  4790.     02h Niwot Networks synch
  4791.     03h Eicon Technologies
  4792.     Class 11h  802.5 with expanded RIFs
  4793.     types same as for class 3
  4794.     Class 12h  reserved for LCP/NCPs
  4795. Note: class and type numbers are cleared through FTP Software
  4796. --------G-6002-------------------------------
  4797. INT 60 - MDEBUG - SET STATUS
  4798.     AH = 02h
  4799.     DS:SI -> password or a null byte
  4800.     ES = new value for the register SE
  4801.     DI = new value for the register OF
  4802.     CH = new monitor color if nonzero
  4803.     CL = new interpreter color if nonzero
  4804.     BH = new monitor start line if nonzero
  4805.     BL = new interpreter start line if nonzero
  4806.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  4807.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  4808.           if nonzero
  4809.     DH = if nonzero, new basic process number for communication with the
  4810.           drivers (DH = multiplex number for the display driver,
  4811.           DH+1 = multiplex number for the command driver or drivers)
  4812. Return: AX = return code
  4813.         FFFFh call not allowed
  4814.         FFFEh password is invalid
  4815.         FFFDh display mode is invalid
  4816.         0000h successful, status changed
  4817.         else AL = error reasons (see #2481)
  4818. Note:    the values of the registers SE and OF are always changed, the other
  4819.       values are only changed if they are valid
  4820. SeeAlso: AH=00h"MDEBUG"
  4821. Index:    hotkeys;MDEBUG
  4822.  
  4823. Bitfields for MDEBUG error reasons:
  4824. Bit(s)    Description    (Table 2481)
  4825.  0    invalid monitor start line
  4826.  1    invalid interpreter start line
  4827.  2    invalid hotkey
  4828.  3    invalid process number
  4829.  4-7    reserved
  4830. --------N-6002-------------------------------
  4831. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  4832.     AH = 02h
  4833.     AL = interface class
  4834.     BX = interface type
  4835.     DL = interface number
  4836.     DS:SI -> type
  4837.     CX = length of type (0000h for all packets)
  4838.     ES:DI -> receiver function (see #2482)
  4839. Return: CF set on error
  4840.         DH = error code (see #2479)
  4841.     CF clear if successful
  4842.         AX = handle
  4843. SeeAlso: AH=03h"FTP"
  4844.  
  4845. (Table 2482)
  4846. Values packet driver receiver is called with when a packet is received:
  4847.     AX = subfunction
  4848.         00h get packet buffer
  4849.         CX = buffer length
  4850.         DX = lookahead length (v1.10+)
  4851.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  4852.         DI = error flags (class dependent) (v1.10+)
  4853.         Return: ES:DI -> packet buffer
  4854.                 0000h:0000h means throw away packet
  4855.             CX = size of buffer (v1.10+), may be smaller than
  4856.                   incoming data
  4857.         01h copy completed
  4858.         DS:SI -> buffer
  4859.         CX = bytes actually copied (v1.10+)
  4860.     BX = handle
  4861. --------G-6002-------------------------------
  4862. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  4863.     AH = 02h
  4864. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  4865.       Issue 47
  4866. SeeAlso: AH=00h"SYS_PROF",01h"SYS_PROF"
  4867. --------G-6003-------------------------------
  4868. INT 60 - MDEBUG - POP UP
  4869.     AH = 03h
  4870.     DS:SI -> password or a null byte
  4871.     ES -> new value for the register SE
  4872.     DI -> new value for the register OF
  4873. Return: AX = return code (see #2483)
  4874. SeeAlso: AH=04h"MDEBUG"
  4875.  
  4876. (Table 2483)
  4877. Values for MDEBUG return code:
  4878.  FFFFh    call not allowed
  4879.  FFFEh    password is invalid
  4880.  FFFDh    display mode is invalid
  4881.  else    successful
  4882. --------N-6003-------------------------------
  4883. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  4884.     AH = 03h
  4885.     BX = handle
  4886. Return: CF set on error
  4887.        DH = error code (see #2479)
  4888.     CF clear if successful
  4889. SeeAlso: AH=02h"FTP"
  4890. --------G-6003-------------------------------
  4891. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  4892.     AH = 03h
  4893. Return: ES:BX -> profiling table
  4894. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  4895.       Issue 47
  4896. SeeAlso: AH=04h"SYS_PROF"
  4897. --------N-6004-------------------------------
  4898. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  4899.     AH = 04h
  4900.     DS:SI -> buffer
  4901.     CX = length
  4902. Return: CF set on error
  4903.         DH = error code (see #2479)
  4904.     CF clear if successful
  4905. Note:    the buffer may be modified immediately upon return from this call
  4906. SeeAlso: AH=0Bh
  4907. --------G-6004-------------------------------
  4908. INT 60 - MDEBUG - POP UP
  4909.     AH = 04h
  4910.     DS:SI -> password or a null byte
  4911. Return: AX = return code (see #2483)
  4912. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  4913. --------G-6004-------------------------------
  4914. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  4915.     AH = 04h
  4916. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  4917.       Issue 47
  4918. SeeAlso: AH=03h"SYS_PROF"
  4919. --------N-6005-------------------------------
  4920. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  4921.     AH = 05h
  4922.     BX = handle (optional for v1.10+)
  4923. Return: CF set on error
  4924.        DH = error code (see #2479)
  4925.     CF clear if successful
  4926. --------G-6005-------------------------------
  4927. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  4928.     AH = 05h
  4929.     DS:SI -> password or a null byte
  4930.     BL = new value for the semaphor of MDEBUG
  4931.          00h  enable popup of MDEBUG
  4932.          else disable popup of MDEBUG
  4933. Return: AX = return code
  4934.         FFFEh password is invalid
  4935.         FFFDh display mode is invalid
  4936.         else successful
  4937.         BL = old value of the semaphor of MDEBUG
  4938.         BH = old value of the INT 08h semaphor
  4939.             (this semaphor is always reset after this function)
  4940. --------N-6006-------------------------------
  4941. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  4942.     AH = 06h
  4943.     BX = handle (optional for v1.10+)
  4944.     ES:DI -> buffer
  4945.     CX = length
  4946. Return: CF set on error
  4947.         DH = error code (see #2479)
  4948.     CF clear if successful
  4949.         CX = length
  4950. Note:    copies the local net address associated with the handle into the buffer
  4951. --------G-6006-------------------------------
  4952. INT 60 - MDEBUG - GET PASSWORD STATUS
  4953.     AH = 06h
  4954. Return: AL = status
  4955.         00h password inactive
  4956.         01h password active
  4957. --------N-6007-------------------------------
  4958. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  4959.     AH = 07h
  4960.     BX = handle (optional for v1.10+)
  4961. Return: CF set on error
  4962.         DH = error code (see #2479)
  4963.     CF clear if successful
  4964. --------G-6007-------------------------------
  4965. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  4966.     AH = 07h
  4967. Return: AL = active part for the next popup session of MDEBUG:
  4968.         bit 0: the next popup session will start in the interpreter rather
  4969.           than in the monitor
  4970.         bit 1: the next popup session will sart in the online-help
  4971. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  4972. --------G-6008-------------------------------
  4973. INT 60 - MDEBUG - UNUSED
  4974.     AH = 08h-FFh
  4975. Return: AX = FFFCh
  4976. --------N-600A-------------------------------
  4977. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  4978.     AH = 0Ah
  4979. Return: CF set on error
  4980.         DH = error code (0Bh) (see #2479)
  4981.     CF clear if successful
  4982.         ES:DI -> parameter table (see #2484)
  4983.  
  4984. Format of packet driver parameter table:
  4985. Offset    Size    Description    (Table 2484)
  4986.  00h    BYTE    major revision of packet driver spec driver conforms to
  4987.  01h    BYTE    minor revision of packet driver spec
  4988.  02h    BYTE    length of this structure in bytes
  4989.  03h    BYTE    length of a MAC-layer address
  4990.  04h    WORD    maximum transfer unit, including MAC headers
  4991.  06h    WORD    buffer size for multicast addr
  4992.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  4993.  0Ah    WORD    number of transmit buffers
  4994.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  4995. --------N-600B-------------------------------
  4996. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  4997.     AH = 0Bh
  4998.     DS:SI -> buffer
  4999.     CX = length of buffer
  5000.     ES:DI -> FAR function to call when buffer becomes available (see #2485)
  5001. Return: CF set on error
  5002.         DH = error code (0Bh,0Ch) (see #2479)
  5003.     CF clear if successful
  5004. Notes:    unlike function 04h, the buffer is not available for modification as
  5005.       soon as the call returns; the buffer may be queued by the driver and
  5006.       not processed until later
  5007.     this function has been dropped from v1.10+ of the specification and
  5008.       replaced by function 0Ch
  5009. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  5010.  
  5011. (Table 2485)
  5012. Values packet driver completion function is called with:
  5013.     AX = result
  5014.         00h copy OK
  5015.         nonzero error
  5016.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  5017. --------N-600C-------------------------------
  5018. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  5019.     AH = 0Ch
  5020.     ES:DI -> pointer to IOCB (see #2486)
  5021. Return: CF set on error
  5022.         DH = error code (see #2479)
  5023.     CF clear if successful
  5024. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  5025.  
  5026. Format of packet driver IOCB:
  5027. Offset    Size    Description    (Table 2486)
  5028.  00h    DWORD    pointer to buffer
  5029.  04h    WORD    length of buffer
  5030.  06h    BYTE    flags
  5031.         bit 0: packet driver is finished with IOCB
  5032.         bit 1: application requests upcall when driver completes
  5033.  07h    DWORD    function address for upcall (see #2487)
  5034.  0Bh  4 BYTEs    future gather write
  5035.  0Fh    BYTE    ???
  5036.  10h  8 BYTEs    private driver workspace
  5037.  
  5038. (Table 2487)
  5039. Values completion function is called with:
  5040.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  5041. --------N-600C-------------------------------
  5042. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  5043.     AH = 0Ch
  5044. Return: AL = status
  5045.         00h successful
  5046.         ES:SI -> 6-byte station address
  5047.         02h semaphore service is unavailable
  5048. --------N-600D-------------------------------
  5049. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  5050.     AH = 0Dh
  5051.     ES:DI -> IOCB
  5052. Return: CF set on error
  5053.         DH = error code (see #2479)
  5054.     CF clear if successful
  5055. SeeAlso: AH=0Ch"Packet Driver"
  5056. --------N-6011-------------------------------
  5057. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  5058.     AH = 11h
  5059.     AL = drive number or 0
  5060.     DX = number of seconds to wait
  5061.     ES:SI = Ethernet address or 0
  5062.     DS:BX -> 31-byte ASCIZ semaphore name
  5063. Return: AL = status (see #2488)
  5064. SeeAlso: AH=12h,AH=13h
  5065.  
  5066. (Table 2488)
  5067. Values for 3com semaphore status:
  5068.  00h    successful
  5069.  01h    timeout
  5070.  02h    server not responding
  5071.  03h    invalid semaphore name
  5072.  04h    semaphore list is full
  5073.  05h    invalid drive ID
  5074.  06h    invalid Ethernet address
  5075.  07h    not logged in
  5076.  08h    write to network failed
  5077.  09h    semaphore already logged for this CPU
  5078. --------N-6012-------------------------------
  5079. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  5080.     AH = 12h
  5081.     AL = drive number or 00h
  5082.     ES:SI = Ethernet address or 0000h:0000h
  5083.     DS:BX -> 31-byte ASCIZ semaphore name
  5084. Return: AL = status (see also #2488)
  5085.         01h semaphore currently locked by another PC
  5086. Note:    unlike function 11h, this function returns immediately
  5087. SeeAlso: AH=11h,AH=13h
  5088. --------N-6013-------------------------------
  5089. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  5090.     AH = 13h
  5091.     AL = drive number or 00h
  5092.     ES:SI = Ethernet address or 0000h:0000h
  5093.     DS:BX -> 31-byte ASCIZ semaphore name
  5094. Return: AL = status (see also #2488)
  5095.         01h semaphore not locked
  5096. SeeAlso: AH=11h,AH=12h
  5097. --------N-6014-------------------------------
  5098. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  5099.     AH = 14h
  5100.     BX = handle (optional for v1.10+)
  5101.     CX = mode (see #2489)
  5102. Return: CF set on error
  5103.        DH = error code (01h,08h) (see #2479)
  5104.     CF clear if successful
  5105. SeeAlso: AH=15h
  5106.  
  5107. (Table 2489)
  5108. Values for packet driver receive mode:
  5109.  01h    turn off receiver
  5110.  02h    receive only packets sent to this interface
  5111.  03h    mode 2 plus broadcast packets
  5112.  04h    mode 3 plus limited multicast packets
  5113.  05h    mode 3 plus all multicast packets
  5114.  06h    all packets
  5115.  07h    raw mode for serial line only (v1.10+)
  5116. --------N-6015-------------------------------
  5117. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  5118.     AH = 15h
  5119.     BX = handle (optional for v1.10+)
  5120. Return: CF set on error
  5121.         DH = error code (01h) (see #2479)
  5122.     CF clear if successful
  5123.         AX = receive mode (see #2489)
  5124. SeeAlso: AH=14h
  5125. --------N-6016-------------------------------
  5126. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  5127.     AH = 16h
  5128.     ES:DI -> multicast list
  5129.     CX = length of list in bytes
  5130. Return: CF set on error
  5131.         DH = error code (06h,09h,0Eh) (see #2479)
  5132.     CF clear if successful
  5133. SeeAlso: AH=17h
  5134. --------N-6017-------------------------------
  5135. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  5136.     AH = 17h
  5137. Return: CF set on error
  5138.         DH = error code (06h,09h) (see #2479 at AX=01FFh)
  5139.     CF clear if successful
  5140.         ES:DI -> multicast addresses (do not modify)
  5141.         CX = bytes of multicast addresses currently in use
  5142. SeeAlso: AH=16h
  5143. --------N-6018-------------------------------
  5144. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  5145.     AH = 18h
  5146.     BX = handle (optional for v1.10+)
  5147. Return: CF set on error
  5148.         DH = error code (01h) (see #2479)
  5149.     CF clear if successful
  5150.         DS:SI -> statistics (see #2490)
  5151.  
  5152. Format of packet driver statistics:
  5153. Offset    Size    Description    (Table 2490)
  5154.  00h    DWORD    packets in
  5155.  04h    DWORD    packets out
  5156.  08h    DWORD    bytes in
  5157.  0Ch    DWORD    bytes out
  5158.  10h    DWORD    errors in
  5159.  14h    DWORD    errors out
  5160.  18h    DWORD    packets dropped
  5161. --------N-6019-------------------------------
  5162. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  5163.     AH = 19h
  5164.     ES:DI -> address
  5165.     CX = length of address
  5166. Return: CF set on error
  5167.         DH = error code (0Dh,0Eh) (see #2479)
  5168.     CF clear if successful
  5169.         CX = length
  5170. --------N-601A-------------------------------
  5171. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  5172.     AH = 1Ah
  5173.     DS:SI -> buffer
  5174.     CX = length of buffer
  5175. Return: CF set on error
  5176.         DH = error code (see #2479 at AX=01FFh)
  5177.     CF clear if successful
  5178. SeeAlso: AH=1Ch
  5179. --------N-601B-------------------------------
  5180. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  5181.     AH = 1Bh
  5182. Return: CF set on error
  5183.         DH = error code (see #2479)
  5184.     CF clear if successful
  5185. SeeAlso: AH=1Ch
  5186. --------N-601C-------------------------------
  5187. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  5188.     AH = 1Ch
  5189.     DS:SI -> buffer
  5190.     CX = length of buffer
  5191.     DX = timeout in clock ticks
  5192. Return: CF set on error
  5193.         DH = error code (see #2479 at AX=01FFh)
  5194.     CF clear if successful
  5195.         CX = number of bytes transferred to buffer
  5196. SeeAlso: AH=1Ah,AH=1Bh
  5197. --------a-60AD-------------------------------
  5198. INT 60 - AccessDOS - API
  5199.     AH = ADh
  5200.     AL = function
  5201.         E1h ???
  5202.         Return: AX = ???
  5203.         E2h get configuration
  5204.         Return: BX:AX -> configuration data
  5205. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  5206.       Development Center which provides extensions for keyboard, mouse,
  5207.       and sound access by the visually, hearing, or motor-control
  5208.       impaired.
  5209. Range:    INT 60 to INT 66, selected by scanning for 0000h:0000h vector
  5210. Note:    the installation check is to test for the signature "ACCESSv1.00"
  5211.       beginning three bytes past the start of the interrupt handler
  5212. --------N-60E9-------------------------------
  5213. INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
  5214.     AH = E9h
  5215.     ???
  5216. Return: ???
  5217. --------*-61---------------------------------
  5218. INT 61 - reserved for user interrupt
  5219. --------b-61---------------------------------
  5220. INT 61 - Atari Portfolio - EXTENDED BIOS
  5221. Desc:    provides subfunctions such as turning off the machine, accessing
  5222.       internal variables, and mapping memory cards
  5223. SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio"
  5224. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  5225. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  5226. SeeAlso: AH=30h"Portfolio"
  5227. --------b-61---------------------------------
  5228. INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
  5229. Desc:    the low word of this vector contains the segment of the RAM data area
  5230.       to be used by the expansion ROM at F400h:0000h, and the high word
  5231.       contains the length of the data area; this segment and size are
  5232.       both set to 0000h if no ROM is installed at F400h:0000h
  5233. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  5234. SeeAlso: INT 66"TI Professional PC"
  5235. --------b-61---------------------------------
  5236. INT 61 - HP 95LX System Manager - LOAD DS
  5237. SeeAlso: INT 0F"HP 95LX",INT 60"HP 95LX"
  5238. --------r-61---------------------------------
  5239. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  5240. SeeAlso: INT 60"JPI"
  5241. --------d-61---------------------------------
  5242. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  5243. Desc:    this vector stores the second four bytes of the parameter table for
  5244.       hard disk 0
  5245. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec",#0598
  5246. --------I-61---------------------------------
  5247. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  5248.     BX:DX -> control block
  5249. SeeAlso: INT 67"Sangoma"
  5250. --------v-61---------------------------------
  5251. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  5252. Note:    the virus copies the original INT 21h vector into INT 61h
  5253. SeeAlso: INT 21h,INT 60"VIRUS",INT 6B"VIRUS"
  5254. --------U-61---------------------------------
  5255. INT 61 - PC-Magazin - PAGE, SWAPx
  5256.     details not yet available
  5257. Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of
  5258.       PC Magazine, issue 47/85, page 31
  5259. SeeAlso: INT 66"INCA"
  5260. --------N-61---------------------------------
  5261. INT 61 - TCPOpen kernel - API
  5262.     ES:BX -> request packet (see #2491)
  5263. Program: TCPOpen is a TCP/IP protocol stack by Lanera
  5264. Range:    INT 60 to INT 7F, selected by configuration file
  5265. Note:    there does not appear to be an installation check, though function
  5266.       FFFFh can be used to verify that the software is indeed functioning
  5267.  
  5268. Format of TCPOpen request packet:
  5269. Offset    Size    Description    (Table 2491)
  5270.  00h  8 BYTEs    ???
  5271.  08h    WORD    function number (0000h-001Ah or FFF9h-FFFFh)
  5272.  0Ah    WORD    ???
  5273.  0Ch  2 BYTEs    ???
  5274.  0Eh    WORD    (ret) return code
  5275.  10h  2 BYTEs    ???
  5276.  12h    WORD    ???
  5277.  14h    WORD    (ret) 0001h if requested function complete
  5278.  16h    WORD    (ret) ???
  5279.  18h  6 BYTEs    ???
  5280.  1Eh    DWORD    -> ???
  5281.  22h    WORD    ??? or 0000h
  5282.  24h    WORD    (ret) ???
  5283. SeeAlso: #2492
  5284.  
  5285. (Table 2492)
  5286. Call TCPOpen Function FFFFh: installation verification
  5287. Return: offset 10h = BEEFh
  5288.     offset 14h = 0001h
  5289.     offset 24h = ???
  5290. Index:    installation check;TCPOpen kernel
  5291. --------N-61---------------------------------
  5292. INT 61 - XFS v1.76 - XFSKRNL.EXE - API
  5293.     AX = function
  5294.         8000h installation check???
  5295.         Return: AX = 0000h
  5296.         8001h ???
  5297.         ES:DI -> DWORD ???
  5298.         Return: AX = status???
  5299.         8002h ???
  5300.         BX = ???
  5301.         CX = ???
  5302.         ES:DI -> ???
  5303.         Return: AX = status???
  5304.         8003h ???
  5305.         BX = ???
  5306.         CX = ???
  5307.         ES:DI -> ???
  5308.         Return: AX = status???
  5309.         8004h ???
  5310.         BX = ???
  5311.         Return: AX = status???
  5312.         8005h wait until ???
  5313.         Return: DX:AX = ???
  5314.         8006h get ???
  5315.         Return: DX:AX -> ??? record
  5316.         8007h set IP address??? (or htonl/ntohl)
  5317.         DX:BX = IP address???
  5318.         Return: DX:AX = byte-swapped IP address
  5319.         8008h set IP address??? (or htonl/ntohl)
  5320.         DX:AX = IP address???
  5321.         Return: DX:AX = byte-swapped IP address
  5322.         8009h ???
  5323.         ES:DI -> ???
  5324.         Return: DX:AX = ???
  5325.         800Ah ???
  5326.         800Bh ???
  5327.         Return: DX:AX = ???
  5328.         800Ch ???
  5329.         800Dh ???
  5330.         800Eh ???
  5331.         800Fh ???
  5332.         8010h get ??? record
  5333.         Return: DX:AX -> ??? record
  5334.         8011h ???
  5335.         8012h ???
  5336.         BX = ???
  5337.         Return: DX:AX = ???
  5338.         8013h get ??? record
  5339.         Return: DX:AX -> ??? record
  5340.         8014h ???
  5341.         ES:DI -> ???
  5342.         Return: nothing
  5343.         8015h get ??? record
  5344.         Return: DX:AX -> 8-byte ??? record
  5345.         8016h get ??? record
  5346.         Return: DX:AX -> 6-byte ??? record
  5347.         8017h ???
  5348.         ES:DI -> ???
  5349.         Return: DX:AX = ???
  5350.         8018h get ??? record
  5351.         Return: DX:AX -> ??? record
  5352.         8019h get ??? record
  5353.         Return: DX:AX -> 14-byte ??? record
  5354.         801Ah get ??? record
  5355.         Return: DX:AX -> ??? record (max 98 bytes)
  5356.         801Bh get ??? record
  5357.         Return: DX:AX -> ??? record
  5358.         801Ch ???
  5359.         Return: nothing
  5360.         801Dh get ???
  5361.         Return: AL = ???
  5362.         801Eh ???
  5363.         Return: AX = ???
  5364.         801Fh uninstall
  5365.         Return: AX = status
  5366.                 0000h successful
  5367.                 other interrupt which could not be released
  5368.     AX = other
  5369.         Return: AX:BX = ??? (0000h:0000h by default)
  5370. Program: XFS is a shareware Network File System client by Robert Juhasz
  5371. Range:    INT 60 to INT 65, selected by scanning for two consecutive free
  5372.       vectors and hooking the first
  5373. SeeAlso: INT 62"XFS"
  5374. --------N-61---------------------------------
  5375. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  5376.     AH = system call number (see also entries below)
  5377.         01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
  5378.         02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
  5379. Return: CF clear if successful
  5380.     CF set on error
  5381.         AL = basic error (see #2493)
  5382.         AH = suberror number (see #2494,#2495)
  5383. Range:    INT 20h to INT E0h, selected by configuration
  5384. Notes:    the installation check consists of testing for the signature "TCPTSR"
  5385.       three bytes beyond the start of the interrupt handler
  5386. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  5387.       greater than 54h in AH may crash the system.    Other kernels may have
  5388.       this bug as well.
  5389. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  5390. Index:    installation check;PC/TCP
  5391.  
  5392. (Table 2493)
  5393. Values for PC/TCP error code:
  5394.  00h "NET_NOERR" successful
  5395.  01h "NET_ERR_INUSE" protocol or socket already in use
  5396.  02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
  5397.  03h "NET_ERR_NOMEM" out of memory
  5398.  04h "NET_ERR_NOTNETCONN" not a network descriptor
  5399.  05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  5400.  06h "NET_ERR_BADPKT" illegal or corrupted packet
  5401.  07h "NET_ERR_NOHOST" no host bound to specified connection
  5402.  08h "NET_ERR_CANTOPEN" unable to open file
  5403.  09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  5404.  0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see subcodes below)
  5405.  0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  5406.  0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  5407.  0Dh "NET_ERR_TIMEOUT" operation timed out
  5408.  0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  5409.  0Fh "NET_ERR_NOSERVERS" no name servers configured
  5410.  10h "NET_ERR_SERVER_ERR" bad reply from name server
  5411.     Subcodes: 0= no error, 1 = Host unreachable
  5412.  11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address struc
  5413.             is zero
  5414.  12h "NET_ERR_BADARG" invalid argument
  5415.  13h "NET_ERR_EOF" foreign host closed its end of connection
  5416.  14h "NET_ERR_RESET" connection has been reset
  5417.  15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  5418.             with no data available
  5419.  16h "NET_ERR_UNBOUND" insufficient resources to do operation
  5420.  17h "NET_ERR_NODESC" could not allocate network descriptor
  5421.  18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  5422.  19h "NET_ERR_CANTBROADCAST" unable to broadcast
  5423.  1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  5424.  1Bh kernel busy, try again later
  5425.  1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
  5426.     (see subcodes below)
  5427. ---v2.1+---
  5428.  1Dh "NET_ERR_TERMINATING" internal kernel fatal error
  5429.  1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
  5430.  1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
  5431.  20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
  5432.  21h "NET_ERR_EMM" expanded memory error
  5433.  22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
  5434.  23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
  5435.  24h "NET_ERR_NOQIOS" ran out of resources; try again later
  5436.  25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
  5437.  
  5438. (Table 2494)
  5439. Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE":
  5440.  00h    no error
  5441.  01h    host unreachable
  5442.  02h    ARP failed
  5443.  03h    hardware failure
  5444.  04h    link failure
  5445.  05h    no route
  5446.  06h    gateway down
  5447.  
  5448. (Table 2495)
  5449. Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG":
  5450.  07h    unrecognised
  5451.  08h    can't fragment
  5452.  09h    srcr_fail
  5453.  0Ah    source quench
  5454.  0Bh    time exceeded
  5455.  0Ch    parameter problem
  5456.  0Dh    admin_prohib. see also code 0Ah
  5457. --------N-6100-------------------------------
  5458. INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
  5459.     AH = 00h
  5460.     DS:SI -> 216-byte buffer for network debugging information (see #2496)
  5461. Return: CF clear
  5462.     AX = 0000h
  5463.     buffer filled
  5464. Notes:    this call is not documented by FTP, Inc. for any version
  5465.     most of the information returned by this call is available via the
  5466.       documented get_kernel_info or net_info commands.
  5467.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  5468. SeeAlso: INT 61"PC/TCP",INT 61/AH=2Ah"PC/TCP"
  5469.  
  5470. Format of network debugging information:
  5471. Offset    Size    Description    (Table 2496)
  5472.  00h    DWORD    number of interrupts
  5473.  04h    DWORD    receive buffer low-water mark
  5474.  08h    DWORD    transmit buffer low-water mark
  5475.  0Ch    DWORD    number of packets received
  5476.  10h    DWORD    number of packets transmitted
  5477.  14h    DWORD    total receive errors
  5478.  18h    DWORD    total transmit errors
  5479.  1Ch  4 BYTEs    ???
  5480.  20h    DWORD    receive resets
  5481.  24h    DWORD    transmit resets
  5482.  28h    DWORD    number of "runts" received
  5483.  2Ch    DWORD    number of alignment errors on received packets
  5484.  30h    DWORD    number of CRC errors on received packets
  5485.  34h    DWORD    number of parity errors on received packets
  5486.  38h    DWORD    number of receive overflow errors
  5487.  3Ch    DWORD    number of oversized packets received
  5488.  40h    DWORD    number of packets lost due to lack of buffers
  5489.  44h    DWORD    receive timeouts
  5490.  48h 32 BYTEs    ???
  5491.  68h    DWORD    number of transmit collisions
  5492.  6Ch    DWORD    number of transmit timeouts
  5493.  70h    DWORD    number of transmit underflows
  5494.  74h    DWORD    number of lost "crs" on transmit
  5495.  78h    DWORD    number of times heartbeat failed on transmit
  5496.  7Ch 24 BYTEs    ???
  5497.  94h    WORD    free packet buffers
  5498.  96h    WORD    total packet buffers
  5499.  98h    WORD    minimum number of packet buffers free since kernel started
  5500.  9Ah 24 BYTEs    ???
  5501.  B2h    DWORD    pointer to TCP connection list???
  5502.  B6h    DWORD    pointer to IP routing table???
  5503.  BAh 30 BYTEs    ???
  5504. --------N-6100-------------------------------
  5505. INT 61 - Banyan VINES - CALL A SERVICE
  5506.     AH = 00h
  5507.     AL = service ID (1..16)
  5508.     other registers vary by service
  5509. Return: AX = status (see #2499)
  5510. Desc:    Calls an adapter driver or redirector service. The service handler
  5511.       pointers are stored at offset 0010h in the code segment of the
  5512.       BANV interrupt handler (see #2497).
  5513. Note:    Banyan can use any interrupt from 60h through 66h.  The Banyan
  5514.       interrupt handler is identified by the string "BANV" in the four
  5515.       bytes immediately preceding the interrupt handler
  5516. SeeAlso: AH=01h,AH=03h
  5517.  
  5518. Format of the BANV code segment (revision 5.53):
  5519. Offset    Size    Description    (Table 2497)
  5520.  00h 16    BYTEs    reserved
  5521.  10h 16    DWORDs    far pointers to the service handlers (0 = not installed)
  5522.  50h    DWORD    far pointer to last called service
  5523.  54h    WORD    VINES revision
  5524.  56h    DWORD    VINES revision long
  5525.  5Ah    WORD    VINES revision (lower bound)
  5526.  5Ch    DWORD    VINES revision (lower bound) long
  5527.  60h    WORD    VINES revision (upper bound)
  5528.  62h    DWORD    VINES revision (upper bound) long
  5529.  66h    WORD    end of PCCONFIG area
  5530.  68h    WORD    start of PCCONFIG area
  5531.  6Ah  4    BYTEs    BANV interrupt identifier ("BANV")
  5532.  6Eh  N    BYTEs    BANV interrupt service
  5533. SeeAlso: #2498
  5534. --------b-6100-------------------------------
  5535. INT 61 - Atari Portfolio - SERVICE INITIALIZATION
  5536.     AH = 00h
  5537. Return: nothing
  5538. Note:    applications using any Portfolio INT 61 calls should call this function
  5539.       exactly once at startup
  5540. SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio"
  5541. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  5542. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  5543. SeeAlso: AH=30h"Portfolio",INT 61"Atari"
  5544. --------V-610000-----------------------------
  5545. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
  5546.     AX = 0000h
  5547.     BX = zoom factor (0-7)
  5548. Desc:    zooms the display based on the given zoom factor
  5549. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  5550.       obtained by calling INT 16/AH=FFh
  5551.     not all vendors include the Tseng TSR which supports these functions
  5552. SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  5553. SeeAlso: INT 16/AH=FFh"OPTIMA"
  5554. --------N-610001DS0001-----------------------
  5555. INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
  5556.     AX = 0001h
  5557.     DS = 0001h (to distinguish from alternate AX=0001h socket interface)
  5558.     CX:BX -> internal communications control block (see #2498)
  5559.     DX = caller's data segment
  5560. Return: AX = status
  5561.         0000h successful
  5562.         0099h invalid operation
  5563.         00A5h resource not available
  5564. Desc:    StreetTalk access with session handles
  5565. Range:    INT 60 to INT 66
  5566. Notes:    This service is handled by the adapter driver
  5567.     The request dispatch table contains dummy entries for subfunctions
  5568.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  5569.       (invalid operation) in the request block's result buffer
  5570.     in recent VINES releases, this interface is superseded by the AX=000Fh
  5571.       interface, which allows FAR parameter block pointers (see that
  5572.       function's entries for more details on individual subfunctions)
  5573.     some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  5574.       VINES 5.53) ignore the value in CX and use the value from DX instead
  5575. SeeAlso: AX=000Fh
  5576.  
  5577. Format of internal communications control block:
  5578. Offset    Size    Description    (Table 2498)
  5579.  00h    WORD    subfunction number
  5580.  02h    WORD    magic number (FEFEh)
  5581.  04h    WORD    (ret) result, should be set to 0 before calling
  5582.  06h    WORD    reserved (will be set to client DS)
  5583.  08h    WORD    caller's code segment if function 000Bh, 0 else
  5584.  0Ah    WORD    pointer to parameter block
  5585.  0Ch    WORD    reserved (segment of parameter block; will be set to client DS)
  5586.  0Eh    WORD    StreetTalk handle
  5587. SeeAlso: #2497,#2618h at INT 61/AX=000Fh
  5588. --------N-610001SF0001-----------------------
  5589. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  5590.     AX = 0001h subfn 0001h
  5591.     DS:DX -> communications control block (function 0001h) (see #2500)
  5592. Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #2499)
  5593. Range:    INT 60h to INT 66h
  5594. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5595.       the four bytes immediately preceding the interrupt handler
  5596. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
  5597.  
  5598. (Table 2499)
  5599. Values for VINES status:
  5600.  0000h    successful
  5601.  0001h    service not installed
  5602.  0002h    invalid service ID
  5603.  0003h    invalid function
  5604.  0004h-000Ah reserved for BANV interface errors
  5605.  0097h    invalid socket identifier
  5606.  0098h    resource already in use
  5607.  009Bh    destination node unreachable
  5608.  009Ch    message overflow
  5609.  009Dh    destination socket nonexistent
  5610.  009Eh    address family does not exist
  5611.  009Fh    socket type does not exist
  5612.  00A0h    protocol does not exist
  5613.  00A1h    no more sockets available
  5614.  00A2h    no more buffer space available
  5615.  00A3h    timeout
  5616.  00A5h    resource not available
  5617.  00A6h    internal communication failure
  5618.  00B1h    resource disconnect
  5619.  
  5620. Format of VINES control block to open socket:
  5621. Offset    Size    Description    (Table 2500)
  5622.  00h    WORD    0001h
  5623.  02h    WORD    pointer to argument block
  5624.  04h    WORD    error return code
  5625.  06h  4 BYTEs    reserved
  5626. SeeAlso: #2501
  5627.  
  5628. Format of VINES argument block for opening socket:
  5629. Offset    Size    Description    (Table 2501)
  5630.  00h    WORD    pointer to 2-byte buffer for socket identifier
  5631.  02h    WORD    address family
  5632.         0003h Banyan
  5633.  04h    WORD    socket type
  5634.         in address family 0003h
  5635.             0001h IPC socket
  5636.             0002h SPP socket
  5637.  06h    WORD    protocol number
  5638.         FFFFh default
  5639.  08h    WORD    pointer to 16-byte buffer for socket address (see #2502)
  5640.  0Ah    WORD    local port number
  5641.         0000h if service should assign transient port number
  5642.         0001h to 01FFh well-known port number (assigned by Banyan)
  5643. SeeAlso: #2500
  5644.  
  5645. Format of Banyan VINES IPC port:
  5646. Offset    Size    Description    (Table 2502)
  5647.  00h    WORD    address family (always 0003h for Banyan ports)
  5648.  04h  4 BYTEs    network number (server's serial number)
  5649.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  5650.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  5651.  0Ah    BYTE    hop count
  5652.  0Bh  5 BYTEs    filler
  5653. SeeAlso: #2507
  5654. --------N-610001SF0002-----------------------
  5655. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  5656.     AX = 0001h subfn 0002h
  5657.     DS:DX -> communications control block (function 0002h) (see #2503)
  5658. Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h)
  5659.         (see #2499)
  5660. Range:    INT 60h to INT 66h
  5661. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5662.       the four bytes immediately preceding the interrupt handler
  5663. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
  5664.  
  5665. Format of VINES control block for subfunction 0002h:
  5666. Offset    Size    Description    (Table 2503)
  5667.  00h    WORD    0002h
  5668.  02h    WORD    pointer to argument block (see #2504)
  5669.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  5670.         (see #2499)
  5671.  06h  4 BYTEs    reserved
  5672. SeeAlso: #2508
  5673.  
  5674. Format of VINES argument block for subfunction 0002h:
  5675. Offset    Size    Description    (Table 2504)
  5676.  00h    WORD    routine metric
  5677.  02h    WORD    error return code
  5678.  04h    WORD    socket identifier
  5679.  06h    WORD    pointer to send buffer (see #2506)
  5680.  08h    WORD    length of send buffer
  5681.  0Ah    WORD    message request flags (see #2505)
  5682.  0Ch 16 BYTEs    socket address (see #2507)
  5683.  1Ch    WORD    timeout value in multiples of 200ms
  5684.  1Eh    WORD    connection identifier
  5685.  20h    WORD    type of request
  5686.         0001h send message
  5687.         0002h establish a virtual connection
  5688.         0003h terminate a virtual connection
  5689. SeeAlso: #2503,#2509
  5690.  
  5691. Bitfields for message request flags:
  5692. Bit(s)    Description    (Table 2505)
  5693.  0    async request
  5694.  1    reliable message
  5695.  2    flush receive buffer on overflow
  5696.  3    end of user message received
  5697.  4    vectored request (if set, send buffer contains buffer descriptors)
  5698.  5    connection-specific receive
  5699.  6    change to connection-specific receive mode
  5700. SeeAlso: #2504,#2509
  5701.  
  5702. Format of buffer descriptor:
  5703. Offset    Size    Description    (Table 2506)
  5704.  00h    WORD    data segment
  5705.  02h    WORD    buffer pointer
  5706.  04h    WORD    buffer length
  5707.  06h    WORD    character count
  5708. SeeAlso: #2504
  5709.  
  5710. Format of VINES socket address for unreliable datagrams:
  5711. Offset    Size    Description    (Table 2507)
  5712.  00h    WORD    0003h      address family
  5713.  02h    DWORD    FFFFFFFFh network number
  5714.  06h    WORD    FFFFh      subnet number
  5715.  08h    WORD          local port number
  5716.  0Ah    BYTE    00h-0Fh      hop count
  5717.  0Bh  5 BYTEs    0000h      filler
  5718. SeeAlso: #2502
  5719. --------N-610001SF0003-----------------------
  5720. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  5721.     AX = 0001h subfn 0003h
  5722.     DS:DX -> communications control block (function 0003h) (see #2508)
  5723. Return: AX = status (00-0Ah,97h,A2h,A3h) (see #2499)
  5724. Range:    INT 60h to INT 66h
  5725. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5726.       the four bytes immediately preceding the interrupt handler
  5727. SeeAlso: AX=0001h/SF=0002h
  5728.  
  5729. Format of VINES control block for subfunction 0003h:
  5730. Offset    Size    Description    (Table 2508)
  5731.  00h    WORD    0003h
  5732.  02h    WORD    pointer to argument block (see #2509)
  5733.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  5734.         (see #2499)
  5735.  06h  4 BYTEs    reserved
  5736. SeeAlso: #2503,#2509,#2511
  5737.  
  5738. Format of VINES argument block for subfunction 0003h:
  5739. Offset    Size    Description    (Table 2509)
  5740.  00h    WORD    character count
  5741.  02h    WORD    error return code
  5742.  04h    WORD    socket identifier
  5743.  06h    WORD    pointer to receive buffer (see #2510)
  5744.  08h    WORD    length of receive buffer
  5745.  0Ah    WORD    message request flags (see #2505)
  5746.  0Ch 16 BYTEs    socket address (see #2502)
  5747.  1Ch    WORD    timeout value in multiples of 200ms
  5748.  1Eh    WORD    connection identifier
  5749.  20h    WORD    type of response
  5750.         0001h message received
  5751.         0002h virtual connection established
  5752.         0003h virtual connection terminated
  5753. SeeAlso: #2508,#2512
  5754.  
  5755. Format of buffer descriptor:
  5756. Offset    Size    Description    (Table 2510)
  5757.  00h    WORD    data segment
  5758.  02h    WORD    buffer pointer
  5759.  04h    WORD    buffer length
  5760.  06h    WORD    character count
  5761. SeeAlso: #2509
  5762. --------N-610001SF0004-----------------------
  5763. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  5764.     AX = 0001h subfn 0004h
  5765.     DS:DX -> communications control block (function 0004h) (see #2511)
  5766. Return: AX = status (0000h-000Ah,0097h) (see #2499)
  5767. Range:    INT 60h to INT 66h
  5768. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5769.       the four bytes immediately preceding the interrupt handler
  5770. SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
  5771.  
  5772. Format of VINES control block to close socket:
  5773. Offset    Size    Description    (Table 2511)
  5774.  00h    WORD    0004h
  5775.  02h    WORD    pointer to argument block (see #2512)
  5776.  04h    WORD    error return code (see #2499)
  5777.  06h  4 BYTEs    reserved
  5778. SeeAlso: #2508,#2514
  5779.  
  5780. Format of VINES argument block for closing socket:
  5781. Offset    Size    Description    (Table 2512)
  5782.  00h    WORD    socket identifier
  5783. SeeAlso: #2509,#2511,#2515
  5784. --------N-610001SF0005-----------------------
  5785. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  5786.     AX = 0001h subfn 0005h
  5787.     DS:DX -> communications control block (see #2514)
  5788. Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #2513)
  5789. Desc:    returns results for all asynchronous operations invoked from the
  5790.       data segment used for this call
  5791. Range:    INT 60h to INT 66h
  5792. Notes:    The Banyan interrupt handler is identified by the string "BANV" in
  5793.       the four bytes immediately preceding the interrupt handler
  5794. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
  5795.  
  5796. (Table 2513)
  5797. Values for VINES function status:
  5798.  0000h    successful
  5799.  0001h    service not installed
  5800.  0002h    invalid service ID
  5801.  0003h-000Ah reserved for BANV interface errors
  5802.  00A2h    no more buffer space available
  5803.  00A3h    timeout event
  5804.  
  5805. Format of VINES control block for subfunction 0005h:
  5806. Offset    Size    Description    (Table 2514)
  5807.  00h    WORD    0005h
  5808.  02h    WORD    pointer to argument block (see #2515)
  5809.  04h    WORD    error return code
  5810.  06h  4 BYTEs    reserved
  5811. SeeAlso: #2511,#2516
  5812.  
  5813. Format of VINES argument block for subfunction 0005h:
  5814. Offset    Size    Description    (Table 2515)
  5815.  00h    WORD    pointer to WORD event pointer
  5816.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  5817. SeeAlso: #2512,#2514
  5818. --------N-610001SF0008-----------------------
  5819. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  5820.     AX = 0001h subfn 0008h
  5821.     DS:DX -> communications control block (function 0008h) (see #2516)
  5822. Return: AX = status
  5823.         0000h  successful
  5824.         00A2h  no more buffer space available
  5825. Range:    INT 60h to INT 66h
  5826. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5827.       the four bytes immediately preceding the interrupt handler
  5828. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
  5829.  
  5830. Format of VINES control block for subfunction 0006h:
  5831. Offset    Size    Description    (Table 2516)
  5832.  00h    WORD    0008h
  5833.  02h    WORD    process type
  5834.         0001h transient process
  5835.         0002h resident process
  5836.  04h    WORD    error return code
  5837.  06h  4 BYTEs    reserved
  5838. SeeAlso: #2514,#2517
  5839. --------N-610001SF000B-----------------------
  5840. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  5841.     AX = 0001h subfn 000Bh
  5842.     DS:DX -> communications control block (function 000Bh) (see #2517)
  5843. Return: AX = status (00h-0Ah,A2h) (see #2513)
  5844. Range:    INT 60h to INT 66h
  5845. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  5846.       the four bytes immediately preceding the interrupt handler
  5847. SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
  5848.  
  5849. Format of VINES control block for subfunction 000Bh:
  5850. Offset    Size    Description    (Table 2517)
  5851.  00h    WORD    000Bh
  5852.  02h    WORD    pointer to argument block (see #2518)
  5853.  04h    WORD    error return code (see #2499)
  5854.  06h  2 BYTEs    reserved
  5855.  08h    WORD    user CS register
  5856. SeeAlso: #2516
  5857.  
  5858. Format of VINES argument block for subfunction 000Bh:
  5859. Offset    Size    Description    (Table 2518)
  5860.  00h    WORD    pointer to user interrupt function (see #2519)
  5861.  02h    WORD    pointer to user stack
  5862.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  5863. SeeAlso: #2518
  5864.  
  5865. (Table 2519)
  5866. Values FAR user function is invoked with:
  5867.     SS = DS = ES = segment of control block
  5868.     STACK:    DWORD    return address
  5869.         WORD    argument pointer (sosend or sorec argument block)
  5870.         WORD    error return code
  5871.             0000h argument pointer is valid
  5872.             00A3h timeout
  5873. --------V-610001-----------------------------
  5874. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
  5875.     AX = 0001h
  5876.     BX = X coordinate to center
  5877.     CX = Y coordinate to center
  5878. Desc:    Positions the zoom window such that the specified window-relative
  5879.       coordinates appear as close as possible to the center of the
  5880.       display.  Useful for scrolling and panning.
  5881. Range:    unknown
  5882. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  5883.       obtained by calling INT 16/AH=FFh
  5884.     not all vendors include the Tseng TSR which supports these functions
  5885. SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  5886. SeeAlso: INT 16/AH=FFh"OPTIMA"
  5887. --------I-610002-----------------------------
  5888. INT 61 - Banyan VINES - 3270 INTERFACE
  5889.     AX = 0002h
  5890.     BH = function number (see #2520)
  5891.     DS:CX -> argument block (except BH=00h,1Ah) (see #2522)
  5892. Return: AX = status (see #2521)
  5893. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  5894.       which is loaded first.  The other interface will use AX=000Ah
  5895.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  5896.       or 3270/BSC resident driver, which must be reloaded by the user
  5897.  
  5898. (Table 2520)
  5899. Values for VINES 3270 interface function number:
  5900.  00h "pi2reset"     reset 3270/SNA or 3270/BSC driver
  5901.  02h "pi2bsc"     (3270/BSC only)
  5902.  03h "pi2get"     get information stored in 3270 resident driver
  5903.  04h "pi2put"     store information in 3270 resident driver
  5904.  05h "pi2gcur"     get current screen position
  5905.  07h "pi2sdat"     send data keystroke
  5906.  08h "pi2scom"     send command keystroke
  5907.  0Ah "pi2field"     get field info for arbitrary screen positions
  5908.  0Fh "pi2stat"     get logical unit/device status
  5909.  12h "pi2nlus"     determine logical unit/device assignment
  5910.  13h "pi2gate"     specifies comm port address to gateway service
  5911.  14h "pi2attach" attach a logical unit/device
  5912.  15h "pi2sdev"     save logical unit/device info in resident driver
  5913.         (not supported in >3.0)
  5914.  16h "pi2gdev"     get device information (not supported in >3.0)
  5915.  17h "pi2luinfo" get info about specific logical unit/device
  5916.  18h "pi2gerr"     get finer error detail
  5917.  19h "pi2dhold"     (3270/SNA only)  holds a 3270 device
  5918.  1Ah "pi2shut"     release memory-resident module
  5919.  1Ch "pi2sprof"     save profile info in res driver (not supp in >3.0)
  5920.  1Dh "pi2gprof"     get prevsly stored profile info (not supp in >3.0)
  5921.  
  5922. (Table 2521)
  5923. Values for VINES 3270 status:
  5924.  0000h    successful
  5925.  000Bh    invalid parameter or data does not fit data area
  5926.  000Ch    another code path currently active in resident driver
  5927.  000Dh    operation currently not allowed
  5928.  0032h    encountered connection disconnect error
  5929.  0033h    encountered "sosend" completion error
  5930.  0034h    encountered "sosend" communication error
  5931.  0035h    attach request refused.    extended error info via "pi2gerr":
  5932.     01h resource unavailable
  5933.     02h invalid type
  5934.     03h version mismatch
  5935.     04h invalid logical unit number
  5936.     05h error during ARL processing
  5937.     06h no access for user
  5938.  0071h    encountered "sosock" error
  5939.  0072h    encountered unrecognizable error
  5940.  0073h    encountered "sowait" error (extended info via "pi2gerr")
  5941.  0074h    encountered invalid type-of-request on "sowait"
  5942.  0075h    encountered "sorec" error (extended info via "pi2gerr")
  5943.  0076h    encountered "sorec" completion error (ext info via "pi2gerr")
  5944.  0077h    encountered connection request
  5945.  0078h    encountered unrecognizable data
  5946.  0079h    encountered unknown connection ID (ext info via "pi2gerr")
  5947. SeeAlso: #2499
  5948.  
  5949. Format of argument block for BH=03h,04h:
  5950. Offset    Size    Description    (Table 2522)
  5951.  00h    WORD    size of data area (max 256)
  5952.  02h  N BYTEs    data area
  5953. SeeAlso: #2523,#2524,#2525
  5954.  
  5955. Format of argument block for BH=05h:
  5956. Offset    Size    Description    (Table 2523)
  5957.  00h    WORD    logical unit/device number
  5958.  02h    WORD    pointer to WORD buffer for cursor index
  5959.  04h    WORD    pointer to BYTE buffer for current field attribute
  5960. SeeAlso: #2522,#2524,#2525
  5961.  
  5962. Format of argument block for BH=07h:
  5963. Offset    Size    Description    (Table 2524)
  5964.  00h    WORD    logical unit/device number
  5965.  02h    WORD    ASCII data byte
  5966.  04h    WORD    pointer to WORD count of characters which will need updating
  5967. SeeAlso: #2522,#2523,#2525
  5968.  
  5969. Format of argument block for BH=08h:
  5970. Offset    Size    Description    (Table 2525)
  5971.  00h    WORD    logical unit/device number
  5972.  02h    WORD    3270 keystroke (see #2526)
  5973. SeeAlso: #2522,#2523,#2524,#2527
  5974.  
  5975. (Table 2526)
  5976. Values for 3270 keystroke:
  5977.  0000h    Enter
  5978.  0001h    Clear
  5979.  0002h    PA1
  5980.  0003h    PA2
  5981.  0004h    PA3
  5982.  0005h    PF1
  5983.  ...
  5984.  001Ch    PF24
  5985.  001Dh    CSELECT (cursor select)
  5986.  001Eh    Insert
  5987.  001Fh    Delete
  5988.  0020h    EOField
  5989.  0021h    EINPUT (erase input)
  5990.  0022h    Reset
  5991.  0023h    Attention
  5992.  0024h    SysReq
  5993.  0025h    Duplicate
  5994.  0026h    Fieldmark
  5995.  0027h    Home
  5996.  0028h    NextLine
  5997.  0029h    Tab
  5998.  002Ah    BackTab
  5999.  002Bh    cursor up
  6000.  002Ch    cursor down
  6001.  002Dh    cursor right
  6002.  002Eh    cursor left
  6003.  002Fh    double cursor right
  6004.  0030h    double cursor left
  6005.  0031h    PRINT
  6006.  0032h    CANCEL
  6007.  0033h    Backspace
  6008.  
  6009. Format of argument block for BH=0Ah:
  6010. Offset    Size    Description    (Table 2527)
  6011.  00h    WORD    logical unit/device number
  6012.  02h    WORD    screen index
  6013.  04h    WORD    pointer to WORD buffer for field length
  6014.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  6015. SeeAlso: #2525,#2528
  6016.  
  6017. Format of argument block for BH=0Fh:
  6018. Offset    Size    Description    (Table 2528)
  6019.  00h    WORD    logical unit/device number
  6020.  02h    WORD    clear mask (clear these bits of status after returning status)
  6021.  04h    WORD    pointer to WORD buffer for device status (see #2529)
  6022. SeeAlso: #2527,#2530
  6023.  
  6024. Bitfields for Banyan 3270 device status:
  6025. Bit(s)    Description    (Table 2529)
  6026.  10    status modified
  6027.  9    buffer modified
  6028.  8    set cursor
  6029.  5    sound alarm
  6030.  1-0    size of print line for printer logical units
  6031.     00  unformatted line
  6032.     01  40-character line
  6033.     10  64-character line
  6034.     11  80-character line
  6035.  
  6036. Format of argument block for BH=12h:
  6037. Offset    Size    Description    (Table 2530)
  6038.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  6039.  02h    WORD    pointer to WORD buffer for version number
  6040.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  6041. SeeAlso: #2528,#2531
  6042.  
  6043. Format of argument block for BH=13h:
  6044. Offset    Size    Description    (Table 2531)
  6045.  00h 16 BYTEs    communications port address (see #2502)
  6046. SeeAlso: #2530,#2532
  6047.  
  6048. Format of argument block for BH=14h:
  6049. Offset    Size    Description    (Table 2532)
  6050.  00h    WORD    logical unit/device number
  6051.         0000h attach any free device of the specified type
  6052.  02h    WORD    logical unit/device type
  6053.         (3270/SNA) 01h, 02h, or 03h
  6054.         (3270/BSC) 02h display
  6055.         (3270/BSC) 03h printer
  6056.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  6057. SeeAlso: #2531,#2533
  6058.  
  6059. Format of argument block for BH=16h:
  6060. Offset    Size    Description    (Table 2533)
  6061.  00h    WORD    pointer to 18-byte buffer for device block (see #2538)
  6062.         first WORD must be set to desired logical unit/device number
  6063. SeeAlso: #2532,#2534
  6064.  
  6065. Format of argument block for BH=17h:
  6066. Offset    Size    Description    (Table 2534)
  6067.  00h    WORD    logical unit/device number
  6068.  02h    WORD    pointer to information block in caller's DS (see #2539)
  6069. SeeAlso: #2533,#2535
  6070.  
  6071. Format of argument block for BH=18h:
  6072. Offset    Size    Description    (Table 2535)
  6073.  00h    WORD    pointer to WORD buffer for major error code
  6074.  02h    WORD    pointer to WORD buffer for minor error code
  6075. SeeAlso: #2534,#2536
  6076.  
  6077. Format of argument block for BH=19h:
  6078. Offset    Size    Description    (Table 2536)
  6079.  00h    WORD    logical unit/device number
  6080. SeeAlso: #2535,#2537
  6081.  
  6082. Format of argument block for BH=1Ch,1Dh:
  6083. Offset    Size    Description    (Table 2537)
  6084.  00h    WORD    pointer to profile block in caller's DS (see #2542)
  6085. SeeAlso: #2522,#2536
  6086.  
  6087. Format of device block, argument block for BH=15h:
  6088. Offset    Size    Description    (Table 2538)
  6089.  00h    WORD    logical unit/device number
  6090.  02h    WORD    logical unit/device type
  6091.  04h    WORD    display model number
  6092.  06h    WORD    numeric checking
  6093.  08h    WORD    status line
  6094.  0Ah    BYTE    unprotected normal field attribute
  6095.  0Bh    BYTE    unprotected intensified field attribute
  6096.  0Ch    BYTE    protected normal field attribute
  6097.  0Dh    BYTE    protected intensified field attribute
  6098.  0Eh    WORD    reserved
  6099.  10h    WORD    printer port number
  6100.  
  6101. Format of information block:
  6102. Offset    Size    Description    (Table 2539)
  6103.  00h    WORD    device model number
  6104.  02h    DWORD    screen buffer pointer
  6105.  06h    DWORD    status line pointer (see #2540)
  6106.  0Ah    DWORD    reserved
  6107.  
  6108. Format of Banyan VINES 3270 status line:
  6109. Offset    Size    Description    (Table 2540)
  6110.  00h    BYTE    comm line status
  6111.         00h inactive
  6112.         01h active
  6113.  01h    BYTE    activation level
  6114.         01h physical unit activated
  6115.         02h logical unit also activated
  6116.         03h session is bound
  6117.  02h    BYTE    data traffic state
  6118.         00h inactive
  6119.         01h active
  6120.  03h    BYTE    screen ownership
  6121.         00h SLU->PLU session owns screen
  6122.         01h SLU->SSCP session owns screen
  6123.  04h    BYTE    keyboard status (see #2541)
  6124.  05h    BYTE    insert mode
  6125.         01h if in insert mode
  6126.  06h    BYTE    numeric
  6127.         01h if current screen buffer is numeric only
  6128.  07h    BYTE    printer status
  6129.         00h printer not assigned
  6130.         01h printer is inactive
  6131.         02h printer error
  6132.         03h currently printing
  6133.         04h printer is busy
  6134.         05h printer is very busy
  6135.  08h    BYTE    printer assignment
  6136.  09h    BYTE    maximum size of network name
  6137.  0Ah  N BYTEs    ASCIZ network name
  6138.     BYTE    maximum size of message window
  6139.       M BYTEs    null-terminated message window
  6140.     BYTE    code set
  6141.         00h EBCDIC
  6142.         01h ASCII
  6143.       M BYTEs    extended attributes
  6144.         01h extended attributes are in effect (stored at screen+1920)
  6145.             each extended attribute specifies
  6146.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  6147.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  6148.                   100=green,101=turquoise,110=yellow,111=white
  6149.     BYTE    extended color
  6150.         01h other than base color is in effect
  6151.  
  6152. (Table 2541)
  6153. Values for Banyan VINES 3270 keyboard status:
  6154.  00h    UNLOCK - ready to accept data
  6155.  01h    TIME - aid was struck
  6156.  02h    SYSTEM - received response no restore
  6157.  03h    FUNCTION - unavailable keyboard function
  6158.  04h    INPUT - not currently used
  6159.  05h    ENDFIELD - field filled in insert mode
  6160.  06h    PROTECTED - attempt to enter in protected field
  6161.  07h    NUMERIC - attempt to enter in numeric field
  6162.  08h    PROGRAM - error in outbound data stream
  6163.  
  6164. Format of Banyan VINES 3270 profile block:
  6165. Offset    Size    Description    (Table 2542)
  6166.  00h 64 BYTEs    gateway service name
  6167.  40h 16 BYTEs    gateway comm port address
  6168.  50h    WORD    primary logical unit number
  6169.  52h    WORD    secondary logical unit type
  6170.  54h    WORD    secondary logical unit number
  6171.  56h    WORD    printer assignment
  6172.  58h 50 BYTEs    keyboard definitions filename
  6173. --------V-610002-----------------------------
  6174. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
  6175.     AX = 0002h
  6176. Desc:    switches off zoom and returns window to its original state
  6177. Range:    unknown
  6178. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  6179.       obtained by calling INT 16/AH=FFh
  6180.     not all vendors include the Tseng TSR which supports these functions
  6181. SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  6182. --------N-610003SF00-------------------------
  6183. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
  6184.     AX = 0003h subfn 00h
  6185.     DS:BX -> argument block (see #2544)
  6186. Return: AX = status (see #2543)
  6187. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
  6188.  
  6189. (Table 2543)
  6190. Values for VINES function status:
  6191.  0000h    successful
  6192.  000Bh    invalid session ID
  6193.  000Ch    session not active
  6194.  000Dh    invalid request type
  6195.  000Eh    invalid parameters
  6196.  000Fh    out of heap space
  6197.  0010h    timeout on send
  6198.  0011h    Banyan communications error
  6199.  0012h    session not waiting for host
  6200.  0013h    session is active
  6201.  0014h    duplicate suspend session request
  6202.  0015h    no session suspended
  6203.  0016h    ring data buffer full
  6204.  0017h    printer error encountered
  6205.  0018h    Banyan communications error
  6206.  0019h    unable to make connection
  6207.  001Ah    no ring buffer specified at startup
  6208.  001Bh    service is down
  6209.  001Ch    invalid service name
  6210.  001Dh    service is closed
  6211.  001Eh    invalid connection name
  6212.  001Fh    max session limit reached for service
  6213.  0020h    access rights list for connection/dialout does not include this user
  6214.  0021h    service not responding
  6215.  0022h    missing telephone number
  6216. SeeAlso: #2499,#2547
  6217.  
  6218. Format of VINES argument block:
  6219. Offset    Size    Description    (Table 2544)
  6220.  00h    BYTE    session ID (00h)
  6221.  01h    BYTE    00h (func "initialize user buffer pointer information area")
  6222.  02h    WORD    -> user buffer ptr info area in caller's current DS (see #2545)
  6223.  
  6224. Format of user buffer ptr info area:
  6225. Offset    Size    Description    (Table 2545)
  6226.  00h    WORD    flags
  6227.         0000h don't read interface's data buffer
  6228.         0001h read data buffer
  6229.  02h    DWORD    pointer to ring buffer
  6230.  06h    WORD    length of ring buffer
  6231.  08h    WORD    ring buffer offset to last byte read by caller
  6232.  0Ah    DWORD    pointer to WORD containing offset of last byte
  6233.           in ring buffer filled
  6234.  0Eh    DWORD    pointer to screen buffer
  6235.  12h    DWORD    pointer to field containing cursor position
  6236.  16h    DWORD    pointer to terminal status area (see #2546)
  6237.  
  6238. Format of VINES terminal status area:
  6239. Offset    Size    Description    (Table 2546)
  6240.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  6241.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  6242.  02h    BYTE    current keypad mode (VT100,VT52 only)
  6243.         4Eh ("N") numeric mode
  6244.         41h ("A") application mode
  6245.  03h  4 BYTEs    current state of LEDs (VT100 only)
  6246.         00h off
  6247.         01h on
  6248.  07h    WORD    line error count
  6249.  09h    WORD    primary error code (see #2547)
  6250.  0Bh    WORD    secondary error code
  6251.  
  6252. (Table 2547)
  6253. Values for VINES primary error code:
  6254.  0000h    no error
  6255.  0001h    unable to make connection
  6256.  0002h    communications error, restart session
  6257.  0003h    async terminal emulation service unavailable
  6258.  0004h    lost carrier
  6259.  0005h    all matching lines busy
  6260.  0006h    no lines defined for connection name
  6261.  0007h    no dial lines available on server
  6262.  0008h    no matching dial lines available
  6263.  0009h    out of heap space
  6264.  000Ah    service error encountered
  6265.  000Bh    timed out waiting to connect
  6266.  000Ch    communications error
  6267.  000Dh    communications error
  6268.  000Eh    host wants file transferred to/from PC
  6269.  000Fh    host software changed session parameter
  6270.  0010h    host software changed tap settings
  6271.  0011h    host software changed LED indicator
  6272.  0012h    host software changed display background (secondary error code 00h for
  6273.       white on black, 01h for black on white)
  6274.  0013h    host software changed display option (secondary error code 00h for off,
  6275.       01h for on)
  6276.  0014h    communications error
  6277.  0015h    communications error
  6278.  0016h    unable to make connection
  6279.  0017h    unable to make connection
  6280. SeeAlso: #2543
  6281. --------N-610003SF01-------------------------
  6282. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
  6283.     AX = 0003h subfn 01h
  6284.     DS:BX -> argument block (see #2548)
  6285. Return: AX = status (see #2543)
  6286. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
  6287.  
  6288. Format of VINES argument block for Function 0003h subfunction 01h:
  6289. Offset    Size    Description    (Table 2548)
  6290.  00h    BYTE    session ID (00h)
  6291.  01h    BYTE    01h (function "send to host")
  6292.  02h    BYTE    type
  6293.         00h ASCII byte
  6294.         01h ASCII string
  6295.         02h terminal function code
  6296.         03h up arrow
  6297.         04h down arrow
  6298.         05h left arrow
  6299.         06h right arrow
  6300.         07h break
  6301.  03h  N BYTEs    type-specific info (see #2549)
  6302.  
  6303. Format of type-specific info:
  6304. Offset    Size    Description    (Table 2549)
  6305. ---ASCII byte---
  6306.  03h    BYTE    byte to send to host
  6307. ---ASCII string---
  6308.  03h    WORD    length of string
  6309.  05h    WORD    pointer to string
  6310. ---terminal function code (VT52/VT100)---
  6311.  03h    BYTE    function code
  6312.         00h keypad 0
  6313.         01h keypad 1
  6314.         ...
  6315.         09h keypad 9
  6316.         0Ah keypad -
  6317.         0Bh keypad ,
  6318.         0Ch keypad .
  6319.         0Dh keypad ENTER
  6320.         0Eh PF1
  6321.         0Fh PF2
  6322.         10h PF3
  6323.         11h PF4
  6324. ---terminal function code (IBM3101)---
  6325.  03h    BYTE    function code
  6326.         00h PF1
  6327.         ...
  6328.         07h PF8
  6329.         08h Home
  6330. SeeAlso: #2548
  6331. --------N-610003SF02-------------------------
  6332. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
  6333.     AX = 0003h subfn 02h
  6334.     DS:BX -> argument block (see #2550)
  6335. Return: AX = status (see #2543)
  6336. SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
  6337.  
  6338. Format of VINES argument block for Function 0003h subfunction 02h:
  6339. Offset    Size    Description    (Table 2550)
  6340.  00h    BYTE    session ID (00h)
  6341.  01h    BYTE    02h (function "control monitor")
  6342.  02h    BYTE    display flag
  6343.         00h don't display data received from host
  6344.         01h display data
  6345. --------N-610003SF03-------------------------
  6346. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
  6347.     AX = 0003h subfn 03h
  6348.     DS:BX -> argument block (see #2551)
  6349. Return: AX = status (see #2543)
  6350. Desc:    this function permits the caller to freeze/unfreeze the display and
  6351.       the ring buffer
  6352. SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
  6353.  
  6354. Format of VINES argument block for Function 0003h subfunction 03h:
  6355. Offset    Size    Description    (Table 2551)
  6356.  00h    BYTE    session ID (00h)
  6357.  01h    BYTE    03h (function "flow control data")
  6358.  02h    BYTE    flow control flag
  6359.         00h allow characters to be put into display or ring buffer
  6360.         01h don't place any more characters into display or ring buffer
  6361. --------N-610003SF04-------------------------
  6362. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
  6363.     AX = 0003h subfn 04h
  6364.     DS:BX -> argument block (see #2552)
  6365. Return: AX = status (see #2543)
  6366. SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
  6367.  
  6368. Format of VINES argument block for ending active session:
  6369. Offset    Size    Description    (Table 2552)
  6370.  00h    BYTE    session ID (00h)
  6371.  01h    BYTE    04h (function "end active session")
  6372. --------N-610003SF05-------------------------
  6373. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
  6374.     AX = 0003h subfn 05h
  6375.     DS:BX -> argument block (see #2553)
  6376. Return: AX = status (see #2543)
  6377. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
  6378.  
  6379. Format of VINES argument block for setting session parameters:
  6380. Offset    Size    Description    (Table 2553)
  6381.  00h    BYTE    session ID (00h)
  6382.  01h    BYTE    05h (function "set session parameter")
  6383.  02h    BYTE    parameter number (see #2554)
  6384.  03h    BYTE    new parameter value
  6385.  
  6386. (Table 2554)
  6387. Values for parameter number:
  6388.  00h    line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  6389.           05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600)
  6390.  01h    parity (00h=none, 01h=odd, 02h=even)
  6391.  02h    duplex (00h=full, 01h=half)
  6392.  03h    character size (00h=7 bits, 01h=8 bits)
  6393.  04h    stop bits (00h=1, 01h=2)
  6394.  05h    XON/XOFF flow control (00h=no, 01h=yes)
  6395.  07h    intercharacter delay in tenths of a second
  6396.  08h    interline delay in tenths of a second
  6397.  09h    auto linefeed (00h=no, 01h=yes)
  6398.  0Ah    filter control characters (00h=no, 01h=yes)
  6399.  0Bh    terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  6400.  0Ch    auto wrap (00h=no, 01h=yes)
  6401.  0Dh    cursor shape (00h=underscore, 01h=block)
  6402.  0Eh    character set (00h=UK, 01h=US ASCII)
  6403.  0Fh    printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  6404. SeeAlso: #2553
  6405. --------N-610003SF06-------------------------
  6406. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
  6407.     AX = 0003h subfn 06h
  6408.     DS:BX -> argument block (see #2555)
  6409. Return: AX = status (see #2543)
  6410. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
  6411.  
  6412. Format of VINES argument block for getting session parameters:
  6413. Offset    Size    Description    (Table 2555)
  6414.  00h    BYTE    session ID (00h)
  6415.  01h    BYTE    06h (function "get session parameter")
  6416.  02h    BYTE    parameter number (see #2554)
  6417.  03h    BYTE    (ret) current parameter value
  6418. --------N-610003SF07-------------------------
  6419. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
  6420.     AX = 0003h subfn 07h
  6421.     DS:BX -> argument block (see #2556)
  6422. Return: AX = status (see #2543)
  6423. SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
  6424.  
  6425. Format of VINES argument block for setting tab settings:
  6426. Offset    Size    Description    (Table 2556)
  6427.  00h    BYTE    session ID (00h)
  6428.  01h    BYTE    07h (function "set tab settings")
  6429.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  6430.           each byte = 00h if no tab, 01h if tab at that position
  6431. --------N-610003SF08-------------------------
  6432. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
  6433.     AX = 0003h subfn 08h
  6434.     DS:BX -> argument block (see #2557)
  6435. Return: AX = status (see #2543)
  6436. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
  6437.  
  6438. Format of VINES argument block for getting tab settings:
  6439. Offset    Size    Description    (Table 2557)
  6440.  00h    BYTE    session ID (00h)
  6441.  01h    BYTE    08h (function "get tab settings")
  6442.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  6443.         each byte set to 00h if no tab, 01h if tab at that position
  6444. --------N-610003SF09-------------------------
  6445. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
  6446.     AX = 0003h subfn 09h
  6447.     DS:BX -> argument block (see #2558)
  6448. Return: AX = status (see #2543)
  6449. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
  6450.  
  6451. Format of VINES argument block for Function 0003h subfunction 09h:
  6452. Offset    Size    Description    (Table 2558)
  6453.  00h    BYTE    session ID (00h)
  6454.  01h    BYTE    09h (function "refresh emulation screen")
  6455. --------N-610003SF0A-------------------------
  6456. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
  6457.     AX = 0003h subfn 0Ah
  6458.     DS:BX -> argument block (see #2559)
  6459. Return: AX = status (see #2543)
  6460. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
  6461.  
  6462. Format of VINES argument block:
  6463. Offset    Size    Description    (Table 2559)
  6464.  00h    BYTE    session ID (00h)
  6465.  01h    BYTE    0Ah (function "suspend session temporarily")
  6466.  02h    WORD    size of session information to be saved
  6467.  04h    WORD    pointer to buffer in caller's DS
  6468. --------N-610003SF0B-------------------------
  6469. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
  6470.     AX = 0003h subfn 0Bh
  6471.     DS:BX -> argument block (see #2560)
  6472. Return: AX = status (see #2543)
  6473. SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
  6474.  
  6475. Format of VINES argument block:
  6476. Offset    Size    Description    (Table 2560)
  6477.  00h    BYTE    session ID (00h)
  6478.  01h    BYTE    0Bh (function "restore previously suspended session")
  6479.  02h    WORD    size of buffer into which session info is restored
  6480.  04h    WORD    pointer to buffer in caller's DS
  6481. --------N-610003SF0C-------------------------
  6482. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
  6483.     AX = 0003h subfn 0Ch
  6484.     DS:BX -> argument block (see #2561)
  6485. Return: AX = status (see #2543)
  6486. SeeAlso: AX=0003h/SF=00h
  6487.  
  6488. Format of VINES argument block:
  6489. Offset    Size    Description    (Table 2561)
  6490.  00h    BYTE    session ID (00h)
  6491.  01h    BYTE    0Ch (function "set state of scroll lock checking")
  6492.  02h    BYTE    check_scroll_lock flag
  6493.         00h off
  6494.         01h on (display of host data stopped while ScrollLock on)
  6495. --------N-610003SF0D-------------------------
  6496. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
  6497.     AX = 0003h subfn 0Dh
  6498.     DS:BX -> argument block (see #2562)
  6499. Return: AX = status (see #2543)
  6500. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
  6501.  
  6502. Format of VINES argument block:
  6503. Offset    Size    Description    (Table 2562)
  6504.  00h    BYTE    session ID (00h)
  6505.  01h    BYTE    0Dh (function "exit emulation")
  6506. --------N-610003SF0E-------------------------
  6507. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
  6508.     AX = 0003h subfn 0Eh
  6509.     DS:BX -> argument block (see #2563)
  6510. Return: AX = status (see #2543)
  6511. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
  6512.  
  6513. Format of VINES argument block:
  6514. Offset    Size    Description    (Table 2563)
  6515.  00h    BYTE    session ID (00h)
  6516.  01h    BYTE    0Eh (function "interrupt on character from host")
  6517.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  6518.  06h    DWORD    stack pointer to use when call is made
  6519. --------N-610003SF0F-------------------------
  6520. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
  6521.     AX = 0003h subfn 0Fh
  6522.     DS:BX -> argument block (see #2564)
  6523. Return: AX = status (see #2543)
  6524. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
  6525.  
  6526. Format of VINES argument block:
  6527. Offset    Size    Description    (Table 2564)
  6528.  00h    BYTE    session ID (00h)
  6529.  01h    BYTE    0Fh (function "start a session")
  6530.  02h    WORD    pointer to information area in caller's current DS (see #2565)
  6531.  
  6532. Format of VINES information area:
  6533. Offset    Size    Description    (Table 2565)
  6534.  00h    WORD    length of service name
  6535.  02h    WORD    pointer to service name in caller's DS
  6536.  04h    BYTE    type of connection (00h=connection name, 01h=dialout)
  6537.  05h    WORD    length of connection name/telephone number
  6538.  07h    WORD    pointer to connection name/telephone number
  6539. --------N-610003SF10-------------------------
  6540. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
  6541.     AX = 0003h subfn 10h
  6542.     DS:BX -> argument block (see #2566)
  6543. Return: AX = status (see #2543)
  6544. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
  6545.  
  6546. Format of VINES argument block:
  6547. Offset    Size    Description    (Table 2566)
  6548.  00h    BYTE    session ID (00h)
  6549.  01h    BYTE    10h (function "start/stop printing of data received from host")
  6550.  02h    WORD    print capture flag (00h=off, 01h=on)
  6551. --------N-610003SF11-------------------------
  6552. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
  6553.     AX = 0003h subfn 11h
  6554.     DS:BX -> argument block (see #2567)
  6555. Return: AX = status (see #2543)
  6556. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  6557.  
  6558. Format of VINES argument block:
  6559. Offset    Size    Description    (Table 2567)
  6560.  00h    BYTE    session ID (00h)
  6561.  01h    BYTE    11h (function "get file transfer parameters")
  6562.  02h    WORD    pointer to info area in caller's current DS (see #2568)
  6563.  
  6564. Format of VINES info area:
  6565. Offset    Size    Description    (Table 2568)
  6566.  00h    BYTE    protocol flag (00h none, 01h Kermit)
  6567.  01h    BYTE    direction flag (00h send, 01h receive)
  6568.  02h    BYTE    length of null-terminated PC filename
  6569.  03h    DWORD    pointer to null-terminated PC filename
  6570.  07h    BYTE    length of null-terminated host filename
  6571.  08h    DWORD    pointer to null-terminated host filename
  6572. --------N-610003SF12-------------------------
  6573. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
  6574.     AX = 0003h subfn 12h
  6575.     DS:BX -> argument block (see #2569)
  6576. Return: AX = status (see #2543)
  6577. SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
  6578.  
  6579. Format of VINES argument block:
  6580. Offset    Size    Description    (Table 2569)
  6581.  00h    BYTE    session ID (00h)
  6582.  01h    BYTE    12h (function "get connection information")
  6583.  02h    WORD    offset of buffer for connection information (see #2570)
  6584.  
  6585. Format of VINES connection information:
  6586. Offset    Size    Description    (Table 2570)
  6587.  00h    WORD    length of service name (returned)
  6588.  02h    WORD    pointer to 64-byte buffer for service name
  6589.  04h    BYTE    type of connection
  6590.         00h connection name
  6591.         01h dialout
  6592.  05h    WORD    length of connection name/telephone number
  6593.  07h    WORD    pointer to 64-byte buffer for name/telno
  6594.  09h    BYTE    server line number being used (returned)
  6595. --------N-610003SF13-------------------------
  6596. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
  6597.     AX = 0003h subfn 13h
  6598.     DS:BX -> argument block (see #2571)
  6599. Return: AX = status (see #2543)
  6600. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
  6601.  
  6602. Format of VINES argument block:
  6603. Offset    Size    Description    (Table 2571)
  6604.  00h    BYTE    session ID (00h)
  6605.  01h    BYTE    13h (function "start/stop tracing data traffic in session")
  6606.  02h    BYTE    trace flag (00h=off, 01h=on)
  6607. --------N-610003SF14-------------------------
  6608. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
  6609.     AX = 0003h subfn 14h
  6610.     DS:BX -> argument block (see #2572)
  6611. Return: AX = status (see #2543)
  6612. SeeAlso: AX=0003h/SF=0Eh
  6613.  
  6614. Format of VINES argument block:
  6615. Offset    Size    Description    (Table 2572)
  6616.  00h    BYTE    session ID (00h)
  6617.  01h    BYTE    14h (function "interrupt on message from host")
  6618.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  6619.  06h    DWORD    stack pointer to use when call is made
  6620. --------N-610003SF15-------------------------
  6621. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
  6622.     AX = 0003h subfn 15h
  6623.     DS:BX -> argument block (see #2573)
  6624. Return: AX = status (see #2543)
  6625. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  6626.  
  6627. Format of VINES argument block:
  6628. Offset    Size    Description    (Table 2573)
  6629.  00h    BYTE    session ID (00h)
  6630.  01h    BYTE    15h (function "reset error")
  6631. --------V-610003-----------------------------
  6632. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
  6633.     AX = 0003h
  6634. Return: AX = zoom factor
  6635. Desc:    returns the current zoom factor
  6636. Range:    unknown
  6637. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  6638.       obtained by calling INT 16/AH=FFh
  6639.     not all vendors include the Tseng TSR which supports these functions
  6640. SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  6641. --------N-610004-----------------------------
  6642. INT 61 - Banyan VINES - FILE SERVICE CONTROL
  6643.     AX = 0004h
  6644.     DS:DX -> request block (see #2575)
  6645. Return: AX = status (see #2574)
  6646. Notes:    This service is handled by the redirector
  6647.     The request dispatch table contains dummy entries for requests 0Ah,
  6648.       0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid
  6649.       request ID)
  6650.  
  6651. (Table 2574)
  6652. Values for Banyan VINES file service control status code:
  6653.  0000h    successful
  6654.  0002h    file not found
  6655.  0003h    path not found
  6656.  000Fh    invalid drive
  6657.  0015h    drive not ready
  6658.  0033h    invalid request ID
  6659.  0034h    drive not connected
  6660.  0037h    drive number out of range
  6661.  0038h    drive number not available
  6662.  003Ah    invalid operation
  6663.  0055h    drive already connected
  6664.  0057h    invalid number of entries
  6665.  
  6666. Format of Banyan VINES file service request block:
  6667. Offset    Size    Description    (Table 2575)
  6668.  00h    WORD    request ID (1..28)
  6669.  02h  n BYTES    additional parameters and result buffer
  6670. --------N-610004SF0001-----------------------
  6671. INT 61 - Banyan VINES - SET DRIVE CONNECTION
  6672.     AX = 0004h subfn 0001h
  6673.     DS:DX -> request block (see #2576)
  6674. Return: AX = status (0000h,0037h,0038h,0055h) (see #2574)
  6675. Desc:    Maps the specified file service to a DOS drive letter
  6676. Note:    If an empty service name is specified, an existing connection will
  6677.       be removed
  6678. SeeAlso: AX=0004h/SF=0002h
  6679.  
  6680. Format of VINES Function 0004h/Subfunction 0001h request block:
  6681. Offset    Size    Description    (Table 2576)
  6682.  00h    WORD    0001h
  6683.  02h    BYTE    drive number (0=default, 1=A, ...)
  6684.  03h 16    BYTEs    reserved
  6685.  13h 64    BYTEs    null-terminated file service name
  6686.  53h  5    BYTEs    reserved
  6687. --------N-610004SF0002-----------------------
  6688. INT 61 - Banyan VINES - GET DRIVE CONNECTION
  6689.     AX = 0004h subfn 0002h
  6690.     DS:DX -> request block (see #2577)
  6691. Return: AX = status (0000h,0034h,0037h) (see #2574)
  6692. Desc:    Returns the StreetTalk name of the associated file service
  6693. SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h
  6694.  
  6695. Format of VINES Function 0004h/Subfunction 0002h request block:
  6696. Offset    Size    Description    (Table 2577)
  6697.  00h    WORD    0002h
  6698.  02h    BYTE    drive number (0=default, 1=A, ...)
  6699.  03h 16    BYTEs    reserved
  6700.  13h 64    BYTEs    buffer for null-terminated file service name
  6701.  53h  5    BYTEs    reserved
  6702. --------N-610004SF0003-----------------------
  6703. INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
  6704.     AX = 0004h subfn 0003h
  6705.     DS:DX -> request block (see #2578)
  6706. Return: AX = status
  6707.         0000h drive map returned in request block
  6708. Desc:    Returns a bit map indicating which drive numbers are connected to a
  6709.       file service
  6710. Note:    Only bits 0-25 are significant
  6711. SeeAlso: AX=0004h/SF=0002h
  6712.  
  6713. Format of VINES Function 0004h/Subfunction 0003h request block:
  6714. Offset    Size    Description    (Table 2578)
  6715.  00h    WORD    0003h
  6716.  02h    DWORD    buffer for drive map (bit0=A, bit1=B, ...)
  6717. --------N-610004SF0004-----------------------
  6718. INT 61 - Banyan VINES - SET USER NAME
  6719.     AX = 0004h subfn 0004h
  6720.     DS:DX -> request block (see #2579)
  6721. Return: AX = status (0000h) (see #2574)
  6722. Notes:    Other side effects, if any, not known
  6723. SeeAlso: AX=0004h/SF=0005h,AX=0006h/SF=0004h,AX=0007h/BX=0005h
  6724.  
  6725. Format of VINES Function 0004h/Subfunction 0004h request block:
  6726. Offset    Size    Description    (Table 2579)
  6727.  00h    WORD    0004h
  6728.  02h 64    BYTE    null-terminated user name
  6729. --------N-610004SF0005-----------------------
  6730. INT 61 - Banyan VINES - GET USER NAME
  6731.     AX = 0004h subfn 0005h
  6732.     DS:DX -> request block (see #2580)
  6733. Return: AX = status (see also #2574)
  6734.         0000h user name returned in request block
  6735. Desc:    Returns the StreetTalk name of the currently logged in user
  6736. SeeAlso: AX=0004h/SF=0004h,AX=0006h/SF=0004h,AX=0007h/BX=0005h
  6737. SeeAlso: AX=0004h/SF=0004h
  6738.  
  6739. Format of VINES Function 0004h/Subfunction 0005h request block:
  6740. Offset    Size    Description    (Table 2580)
  6741.  00h    WORD    0005h (subfunction "Get User Name")
  6742.  02h 64    BYTE    buffer for null-terminated user name
  6743. --------N-610004SF0006-----------------------
  6744. INT 61 - Banyan VINES - TEST DRIVE CONNECTION
  6745.     AX = 0004h subfn 0006h
  6746.     DS:DX -> request block (see #2581)
  6747. Return: AX = status (see also #2574)
  6748.         0000h connection flag returned in request block
  6749. Desc:    Returns a flag indicating if the drive is connected to a file service
  6750. SeeAlso: AX=0004h/SF=0007h
  6751.  
  6752. Format of VINES Function 0004h/Subfunction 0006h request block:
  6753. Offset    Size    Description    (Table 2581)
  6754.  00h    WORD    0006h (subfunction "Test Drive Connection")
  6755.  02h    BYTE    buffer for connection flag (1 = not connected, 2 = connected)
  6756. --------N-610004SF0007-----------------------
  6757. INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
  6758.     AX = 0004h subfn 0007h
  6759.     DS:DX -> request block (see #2582)
  6760. Return: AX = status (see also #2574)
  6761.         0000h pointer returned in request block
  6762.         0033h invalid request ID
  6763. Desc:    Returns pointers to various internal data structures
  6764.  
  6765. Format of VINES Function 0004h/Subfunction 0007h request block:
  6766. Offset    Size    Description    (Table 2582)
  6767.  00h    WORD    0007h
  6768.  02h    BYTE    request ID (0..7) (see #2583)
  6769.  03h    WORD    buffer for pointer segment
  6770.  05h    WORD    buffer for pointer offset
  6771. SeeAlso: #2584,#2585
  6772.  
  6773. (Table 2583)
  6774. Values for VINES pointer ID:
  6775.  00h    job file table ???
  6776.  01h    drive handle table
  6777.  02h    drive connection table
  6778.  03h    IPC port of drive Z:
  6779.  04h    end of drive connection table
  6780.  05h    ???
  6781.  06h    ???
  6782.  07h    redirector data segment (offset=0)
  6783. SeeAlso: #2582
  6784.  
  6785. Format of VINES drive handle table:
  6786. Offset    Size    Description    (Table 2584)
  6787.  00h    BYTE    handle to default drive (0 = not connected)
  6788.  01h    BYTE    handle to drive A: (0 = not connected)
  6789.     ...
  6790.  1Ah    BYTE    handle to drive Z: (0 = not connected)
  6791. SeeAlso: #2585
  6792.  
  6793. Format of VINES drive connection table:
  6794. Offset    Size    Description    (Table 2585)
  6795.  00h    WORD    file service type (?) (0001h if drive Z:, 0000h else)
  6796.  02h 16    BYTEs    IPC port (contains the server serial number)
  6797.  12h 46    BYTEs    ???
  6798.  40h 64    BYTEs    null-terminated StreetTalk name of associated file service
  6799.  80h 64    BYTEs    null-terminated root directory (/ROOT: parameter of SETDRIVE)
  6800. SeeAlso: #2584
  6801. --------N-610004SF0008-----------------------
  6802. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  6803.     AX = 0004h subfn 0008h
  6804.     DS:DX -> request block (see #2586)
  6805. Return: AX = status (0000h,000Fh,0015h) (see #2574)
  6806. Notes:    The server ID is extracted from the IPC port address of the associated
  6807.       file service stored in the drive connection table
  6808.     The server serial number and the server subnet number are returned in
  6809.       big-endian (Motorola) format (i.e. MSB first)
  6810. SeeAlso: AX=0004h/SF=0005h
  6811.  
  6812. Format of VINES request block for getting server serial number:
  6813. Offset    Size    Description    (Table 2586)
  6814.  00h    WORD    0008h
  6815.  02h    WORD    drive number (0=default, 1=A, ...)
  6816.  04h    DWORD    buffer for server serial number
  6817.  08h    WORD    buffer for server subnet number (always 0001h)
  6818. --------N-610004SF0009-----------------------
  6819. INT 61 - Banyan VINES - SET ??? PARAMETER
  6820.     AX = 0004h subfn 0009h
  6821.     DS:DX -> request block (see #2587)
  6822. Return: AX = status (0000h) (see #2574)
  6823. Notes:    The specified WORD parameter is copied to offset 1702h of the
  6824.       redirector code segment (revision 5.53)
  6825. SeeAlso: AX=0004h/SF=000Bh
  6826.  
  6827. Format of VINES Function 0004h/Subfunction 0009h request block:
  6828. Offset    Size    Description    (Table 2587)
  6829.  00h    WORD    0009h
  6830.  02h    WORD    parameter
  6831. --------N-610004SF000B-----------------------
  6832. INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
  6833.     AX = 0004h subfn 000Bh
  6834.     DS:DX -> request block (see #2588)
  6835. Return: AX = status (0000h,0034h,0037h) (see #2574)
  6836. Notes:    This request returns a WORD value from the drive connection table
  6837.       read from offset 0012h of the specified drive's entry (usually 0037h)
  6838. SeeAlso: AX=0004h/SF=0009h
  6839.  
  6840. Format of VINES Function 0004h/Subfunction 000Bh request block:
  6841. Offset    Size    Description    (Table 2588)
  6842.  00h    WORD    000Bh
  6843.  02h    BYTE    drive number (0=default, 1=A, ...)
  6844.  03h    WORD    buffer for parameter
  6845. --------N-610004SF000C-----------------------
  6846. INT 61 - Banyan VINES - LOGOUT FROM VINES
  6847.     AX = 0004h subfn 000Ch
  6848.     DS:DX -> request block (see #2589)
  6849. Return: AX = status 0000h (see #2574)
  6850. Desc:    Terminates a running VINES session and clears all session specific
  6851.       buffers
  6852. SeeAlso: AX=0004h/SF=0008h
  6853.  
  6854. Format of VINES Function 0004h/Subfunction 000Ch request block:
  6855. Offset    Size    Description    (Table 2589)
  6856.  00h    WORD    000Ch
  6857. --------N-610004SF000E-----------------------
  6858. INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
  6859.     AX = 0004h subfn 000Eh
  6860.     DS:DX -> request block (see #2590)
  6861. Return: AX = status (see also #2574)
  6862.         0000h request has been processed
  6863. Desc:    Returns the owner, group, and extended access rights for the specified
  6864.       file or directory
  6865. Note:    A status of 0000h does not necessarily indicate a successful request;
  6866.       check the status word at offset 000Eh of the request block too
  6867. SeeAlso: AX=0004h/SF=000Fh
  6868.  
  6869. Format of VINES Function 0004h/Subfunction 000Eh request block:
  6870. Offset    Size    Description    (Table 2590)
  6871.  00h    WORD    000Eh (subfunction "Get Access Rights List")
  6872.  02h    BYTE    drive number (0=default, 1=A, ...)
  6873.  03h    BYTE    reserved
  6874.  04h    DWORD    pointer to path specification (drive letter ignored)
  6875.  08h    DWORD    pointer to ARL control block (see #2591)
  6876.  0Ch    WORD    buffer for number of ARL entries (1..5)
  6877.  0Eh    WORD    buffer for status (see #2592)
  6878.  
  6879. Format of ARL control block:
  6880. Offset    Size    Description    (Table 2591)
  6881.  00h 64    BYTEs    1st StreetTalk name (user, list, or service)
  6882.  40h    WORD    1st ARL
  6883.  42h 64    BYTEs    2nd StreetTalk name (user, list, or service)
  6884.  82h    WORD    2nd ARL
  6885.  84h 64    BYTEs    3rd StreetTalk name (user, list, or service)
  6886.  C4h    WORD    3rd ARL
  6887.  C6h 64    BYTEs    4th StreetTalk name (user, list, or service)
  6888. 106h    WORD    4th ARL
  6889. 108h 64    BYTEs    5th StreetTalk name (user, list, or service)
  6890. 148h    WORD    5th ARL
  6891.  
  6892. (Table 2592)
  6893. Values for VINES Get/Set Access Rights List status:
  6894.  0000h    successful
  6895.  0002h    file not found
  6896.  0003h    path not found
  6897.  003Ah    invalid operation
  6898.  0057h    invalid number of entries
  6899. --------N-610004SF000F-----------------------
  6900. INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
  6901.     AX = 0004h subfn 000Fh
  6902.     DS:DX -> request block (see #2593)
  6903. Return: AX = status (see also #2574)
  6904.         0000h request has been processed
  6905. Desc:    Sets the owner, group, and extended access rights for the specified
  6906.       file or directory
  6907. Note:    A status of 0000h does not necessarily indicate a successful request;
  6908.       check the status word at offset 000Eh of the request block too
  6909.     If the number of ARL entries is less than 1 or greater than 5, error
  6910.       0057h (invalid number of entries) is returned
  6911. SeeAlso: AX=0004h/SF=000Eh
  6912.  
  6913. Format of VINES Function 0004h/Subfunction 000Fh request block:
  6914. Offset    Size    Description    (Table 2593)
  6915.  00h    WORD    000Fh
  6916.  02h    BYTE    drive number (0=default, 1=A, ...)
  6917.  03h    BYTE    reserved
  6918.  04h    DWORD    pointer to path specification (drive letter ignored)
  6919.  08h    DWORD    pointer to ARL control block (see #2591)
  6920.  0Ch    WORD    number of ARL entries (1..5)
  6921.  0Eh    WORD    buffer for status (see #2592)
  6922. --------N-610004SF0010-----------------------
  6923. INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
  6924.     AX = 0004h subfn 0010h
  6925.     DS:DX -> request block (see #2594)
  6926. Return: AX = status (see also #2574)
  6927.         0000h request has been processed
  6928. SeeAlso: AX=0004h/SF=000Fh
  6929.  
  6930. Format of VINES Function 0004h/Subfunction 0010h request block:
  6931. Offset    Size    Description    (Table 2594)
  6932.  00h    WORD    0010h
  6933.  02h    BYTE    drive number (0=default, 1=A, ...)
  6934.  03h    BYTE    reserved
  6935.  04h 64    BYTEs    ???
  6936.  44h 16    BYTEs    IPC port (see #2502 at AX=0001h"Sosock")
  6937. --------N-610004SF0013-----------------------
  6938. INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
  6939.     AX = 0004h subfn 0013h
  6940.     DS:DX -> request block (see #2595)
  6941. Return: AX = status (see also #2574)
  6942.         0000h successful
  6943.         0033h invalid request ID (returned if variable index out of range)
  6944. Desc:    Returns the value of the specified global variable
  6945. Note:    The data will be truncated if the specified buffer is not large enough.
  6946.       Check the length word in the request block to find out how many
  6947.       bytes should have been copied.
  6948. SeeAlso: AX=0004h/SF=0014h,AX=0006h
  6949.  
  6950. Format of request block:
  6951. Offset    Size    Description    (Table 2595)
  6952.  00h    WORD    0013h
  6953.  02h    WORD    variable index (0000h-001Fh) (see #2596)
  6954.  04h    WORD    buffer length (on exit set to # of bytes actually needed)
  6955.  06h    DWORD    far pointer to result buffer
  6956. SeeAlso: #2597
  6957.  
  6958. (Table 2596)
  6959. Values for variable indices:
  6960. Index    Length    Description
  6961.  0000h       1    ???
  6962.  0001h      16    StreetTalk port
  6963.  0002h       4    StreetTalk session handle
  6964.  0003h       6    colors
  6965.  0004h      64    StreetTalk name of currently logged in user
  6966.  0005h       0    old clear text password (not applicable)
  6967.  0006h       0    default group (not applicable)
  6968.  0007h       1    number of messages in message queue
  6969.  0008h       1    message flag
  6970.  0009h      16    TalkPort
  6971.  000Ah       2    TalkPort socket
  6972.  000Bh      64    StreetTalk name of mail service
  6973.  000Ch       2    message timeout
  6974.  000Dh       2    next message place
  6975.  000Eh     246    message queue (3 times 80 characters + 2 flag bytes)
  6976.  000Fh      14    system nonce
  6977.  0010h       2    failed login count
  6978.  0011h       1    new mail message received
  6979.  0012h       8    mail service capabilities
  6980.  0013h       3    printer port diverted
  6981.  0014h      32    international location
  6982.  0015h      16    IPC port of drive Z:
  6983.  0016h    1024    pointer to current directory table
  6984.  0017h       2    maximum number of file volume mappings
  6985.  0018h      24    routine to call back for messages (6 far pointers)
  6986.  0019h       4    current virtual machine
  6987.  001Ah      20    DOS redirector message bell tones
  6988.  001Bh       2    various flags used for internal communication
  6989.  001Ch       0    OS/2 client configuration (not applicable)
  6990.  001Dh       8    redirector/IFS file version
  6991.  001Eh       0    reserved (not applicable)
  6992.  001Fh       4    address of VVINESD.386 dispatch
  6993. --------N-610004SF0014-----------------------
  6994. INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
  6995.     AX = 0004h subfn 0014h
  6996.     DS:DX -> request block (see #2597)
  6997. Return: AX = status
  6998.         0000h successful
  6999.         0033h invalid request ID (returned if variable index out of range)
  7000. Desc:    Assigns a new value to the specified global variable
  7001. Note:    If the specified number of bytes to copy exceeds the size of the
  7002.       destination variable, nothing will be copied.
  7003. SeeAlso: AX=0004h/SF=0013h,AX=0006h
  7004.  
  7005. Format of request block:
  7006. Offset    Size    Description    (Table 2597)
  7007.  00h    WORD    0014h
  7008.  02h    WORD    variable index (0000h-001Fh) (see #2596)
  7009.  04h    WORD    number of bytes to copy
  7010.  06h    DWORD    far pointer to new value
  7011. SeeAlso: #2595
  7012. --------N-610004SF0016-----------------------
  7013. INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
  7014.     AX = 0004h subfn 0016h
  7015.     DS:DX -> request block (see #2598)
  7016. Return: AX = status
  7017.         0000h open file count returned in request block
  7018. Desc:    Counts the number of open files on the specified remote drive.
  7019. Note:    No error is returned if the specified drive number is invalid or points
  7020.       to a local drive. Use AX=0004h/SF=0006h to test if a given drive
  7021.       number is assigned to a remote drive.
  7022. SeeAlso: AX=0004h/SF=0006h
  7023.  
  7024. Format of request block:
  7025. Offset    Size    Description    (Table 2598)
  7026.  00h    WORD    0016h
  7027.  02h    BYTE    drive number (0=default, 1=A:, ...)
  7028.  03h    BYTE    reserved
  7029.  04h    WORD    buffer for open file count
  7030. SeeAlso: #2600
  7031. --------N-610004SF0018-----------------------
  7032. INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
  7033.     AX = 0004h subfn 0018h
  7034.     DS:DX -> request block (see #2599)
  7035. Return: AX = status
  7036.         0000h success
  7037. Desc:    Sets an unidentified BYTE variable in the redirector data segment to 1.
  7038. Note:    In the VINES 5.53 "REDIR4" redirector, this variable is located at
  7039.       DS:0B53.
  7040.  
  7041. Format of request block:
  7042. Offset    Size    Description    (Table 2599)
  7043.  00h    WORD    0018h
  7044. SeeAlso: #2600
  7045. --------N-610004SF001B-----------------------
  7046. INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
  7047.     AX = 0004h subfn 001Bh
  7048.     DS:DX -> request block (see #2600)
  7049. Return: AX = status
  7050.         0000h success
  7051.         0034h drive not connected
  7052.         0037h drive number out of range
  7053. Desc:    The purpose of this function is not known.
  7054.  
  7055. Format of request block:
  7056. Offset    Size    Description    (Table 2600)
  7057.  00h    WORD    001Bh
  7058.  02h    BYTE    drive number (0=default, 1=A:, ...)
  7059.  03h    BYTE    ???
  7060.  04h    WORD    ???
  7061.  06h    DWORD    far pointer to data area
  7062.  0Ah    WORD    ???
  7063.  0Ch    DWORD    far pointer to data area
  7064.  10h    WORD    buffer for result
  7065. SeeAlso: #2598,#2600
  7066. --------N-610004SF001C-----------------------
  7067. INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
  7068.     AX = 0004h subfn 001Ch
  7069.     DS:DX -> request block (see #2601)
  7070. Return: AX = status
  7071.         0000h success
  7072.         0057h invalid number of entries
  7073. Desc:    The purpose of this function is not known.
  7074.  
  7075. Format of request block:
  7076. Offset    Size    Description    (Table 2601)
  7077.  00h    WORD    001Ch
  7078.  02h    WORD    ???
  7079.  04h    WORD    ???
  7080.  06h    WORD    ???
  7081.  08h    WORD    ???
  7082.  0Ah    DWORD    far pointer to data area (14 bytes)
  7083. --------V-610004-----------------------------
  7084. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
  7085.     AX = 0004h
  7086. Range:    unknown
  7087. Notes:    Specify Mode is enabled by hot key (seeAlso below), and allows
  7088.       panning and zooming via the numeric keypad.
  7089.     INT 61 is the default interrupt; the actual interrupt number can be
  7090.       obtained by calling INT 16/AH=FFh
  7091.     not all vendors include the Tseng TSR which supports these functions
  7092. SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  7093. --------N-610005-----------------------------
  7094. INT 61 - Banyan VINES - PRINT SERVICE CONTROL
  7095.     AX = 0005h
  7096.     DS:DX -> request block (see #2602)
  7097. Return: AX = status
  7098.         0000h successful
  7099.         0001h network software not installed or incompatible
  7100. Note:    This service is handled by the redirector
  7101. SeeAlso: INT 2F/AX=D702h
  7102.  
  7103. Format of VINES request block for printer control:
  7104. Offset    Size    Description    (Table 2602)
  7105.  00h    WORD    function
  7106.         0201h "endspool" all data for a print job has been sent
  7107.               (no bytes returned)
  7108.         0202h "deassign" the virtual printer port
  7109.             Before the printer port is deassigned all data sent
  7110.               to it is endspooled.
  7111.               (no bytes returned)
  7112.         0205h "get_active" get currently active printer port
  7113.               (1 byte required for result)
  7114.             Returns:  - the currently active printer port (1-3) (0 if
  7115.                   there is none)
  7116.         0207h ??? purpose unknown; called periodically every second
  7117.         020Ch "get_bannertitle" gets the title which is printed on the
  7118.               banner page of a print job sent to the virtual port
  7119.               (16 bytes required for result)
  7120.             Returns:  - the null-terminated banner title
  7121.         020Eh "get_servicename" gets the name of the print service
  7122.               assigned to the virtual port
  7123.               (64 bytes required for result)
  7124.             Returns:  - the null-terminated print service name assigned
  7125.                   to the virtual port
  7126.  02h    WORD    number of active port (1-3)
  7127.  04h    WORD    Offset into the request block at which the result is to be
  7128.         copied (if there is any). Therefore the smallest block size
  7129.         for a function which returns a result is
  7130.           this offset + the maximum number of returned bytes - 1
  7131.  06h    WORD    0000h
  7132. --------V-610005-----------------------------
  7133. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  7134.     AX = 0005h
  7135.     BX:CX -> buffer for window parameters (see #2603)
  7136. Range:    unknown
  7137. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  7138.       obtained by calling INT 16/AH=FFh
  7139.     not all vendors include the Tseng TSR which supports these functions
  7140. SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA"
  7141. SeeAlso: INT 16/AH=FFh"OPTIMA"
  7142.  
  7143. Format of Optima 1024 window parameters:
  7144. Offset    Size    Description    (Table 2603)
  7145.  00h    WORD    X start of zoom window
  7146.  02h    WORD    Y start of zoom window
  7147.  04h    WORD    X end of zoom window
  7148.  06h    WORD    Y end of zoom window
  7149.  08h    WORD    current zoom factor
  7150.  0Ah    WORD    zoom offset start X
  7151.  0Ch    WORD    zoom offset start Y
  7152. --------V-610006-----------------------------
  7153. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
  7154.     AX = 0006h
  7155.     BX:CX -> zoom window description (see #2604)
  7156. Range:    unknown
  7157. Notes:    width of zoom window must be a multiple of the pixel replication (zoom)
  7158.       factor
  7159.     INT 61 is the default interrupt; the actual interrupt number can be
  7160.       obtained by calling INT 16/AH=FFh
  7161.     not all vendors include the Tseng TSR which supports these functions
  7162. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA"
  7163. SeeAlso: INT 16/AH=FFh"OPTIMA"
  7164.  
  7165. Format of Optima 1024 zoom window description:
  7166. Offset    Size    Description    (Table 2604)
  7167.  00h    WORD    X start of zoom window
  7168.  02h    WORD    Y start of zoom window
  7169.  04h    WORD    X end of zoom window
  7170.  06h    WORD    Y end of zoom window
  7171. --------N-610006-----------------------------
  7172. INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
  7173.     AX = 0006h
  7174.     BX = bits 14..0: request ID (see #2605)
  7175.          bit  15:     result destination flag (0 for ES:BX, 1 for AX:BX)
  7176. Return: AX = status
  7177.         0000h successful
  7178.         000Bh invalid request
  7179.     ES:BX -> internal variable (bit 15 of BX was not set)
  7180.     AX:BX -> internal variable (bit 15 of BX was set)
  7181. Note:    This service is handled by the redirector
  7182. SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h
  7183.  
  7184. (Table 2605)
  7185. Values for request IDs:
  7186. Request    Length    Description
  7187.  0000h       1    ???
  7188.  0001h      16    StreetTalk port
  7189.  0002h       4    StreetTalk session handle
  7190.  0003h       6    colors
  7191.  0004h      64    StreetTalk name of currently logged in user
  7192.  0005h       0    old clear text password (always returns error code 000Bh)
  7193.  0006h       0    default group (not applicable)
  7194.  0007h       1    message queue count
  7195.  0008h       1    message flag
  7196.  0009h      16    TalkPort
  7197.  000Ah       2    TalkPort socket
  7198.  000Bh      64    StreetTalk name of mail service
  7199.  000Ch       2    message timeout
  7200.  000Dh       2    next message place
  7201.  000Eh     246    message queue
  7202.  000Fh      14    system nonce
  7203.  0010h       2    failed login count
  7204.  0011h       1    new mail message received
  7205.  0012h       8    mail capabilities
  7206.  0013h       3    printer port diverted
  7207.  0014h      32    international location
  7208.  0015h      16    IPC port of drive Z:
  7209.  0016h    1024    pointer to current directory table
  7210.  0017h       2    maximum number of file volume mappings
  7211.  0018h      24    routine to call back for messages
  7212.  0019h       4    current virtual machine
  7213.  001Ah      20    DOS redirector message bell tones
  7214.  001Bh       2    various flags used for internal communication
  7215.  001Ch       0    OS/2 client configuration (always returns error code 000Bh)
  7216.  001Dh       8    redirector/IFS file version
  7217.  001Eh       0    reserved (always returns error code 000Bh)
  7218.  001Fh       4    address of VVINESD.386 dispatch
  7219. --------V-610007-----------------------------
  7220. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
  7221.     AX = 0007h
  7222. Return: AX = current state (0000h/0001h)
  7223. Desc:    returns the current toggle state of the application (END) key in
  7224.       specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
  7225.       calls INT 61/AX=0001h every time the crosshair cursor moves.
  7226. Notes:    In specify mode, the END key has been reserved for applications.
  7227.     INT 61 is the default interrupt; the actual interrupt number can be
  7228.       obtained by calling INT 16/AH=FFh
  7229.     not all vendors include the Tseng TSR which supports these functions
  7230. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA"
  7231. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"
  7232. --------N-610007BX0000-----------------------
  7233. INT 61 - Banyan VINES - RECONNECT TO STREETTALK
  7234.     AX = 0007h
  7235.     BX = 0000h
  7236. Return: AX = status (see #2606)
  7237. SeeAlso: AX=0007h/BX=0002h
  7238.  
  7239. (Table 2606)
  7240. Values for VINES function status:
  7241.  0000h    successful
  7242.  0001h    requested handler not installed or incompatible
  7243.  000Bh    service busy
  7244.  000Ch    invalid request ID
  7245.  03E9h    incorrect name syntax
  7246.  03EAh    organization name too long
  7247.  03EBh    group name too long
  7248.  03ECh    item name too long
  7249.  03EDh    StreetTalk name too long
  7250.  03F3h    organization not found
  7251.  03F4h    group not found
  7252.  03F5h    StreetTalk name not found
  7253.  03F8h    not a StreetTalk name
  7254.  0409h    modify access denied
  7255.  040Dh    appropriate StreetTalk name unavailable
  7256.  0411h    all matching names have been returned
  7257.  0412h    some groups unavailable, all available matches returned
  7258. --------N-610007BX0001-----------------------
  7259. INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
  7260.     AX = 0007h
  7261.     BX = 0001h
  7262.     DS:DX -> StreetTalk service name (64 bytes)
  7263.     DS:DI -> 16-byte buffer for IPC port (see #2502 at AX=0001h"Sosock")
  7264. Return: AX = status (see #2606)
  7265. Notes:    This function calls AX=0007/BX=0002h with the port count set to 1 and
  7266.       the port type set to 00h
  7267. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000Ah
  7268. --------N-610007BX0002-----------------------
  7269. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  7270.     AX = 0007h
  7271.     BX = 0002h
  7272.     DS:DX -> StreetTalk service name
  7273.     DS:DI -> port record block (see #2607)
  7274. Return: AX = status (see #2606)
  7275. Note:    if the requested number of ports is greater than five, it will be reset
  7276.       to five
  7277. SeeAlso: AX=0007h,BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h
  7278. SeeAlso: AX=0007h/BX=000Ah
  7279.  
  7280. Format of VINES port record block:
  7281. Offset    Size    Description    (Table 2607)
  7282.  00h    WORD    (call) number of 17-byte elements (01h-05h) to be filled
  7283.  02h    BYTE    (call) port type for first port
  7284.  03h 16 BYTEs    (ret) port (see #2502)
  7285.  13h    BYTE    (call) port type for second port
  7286.  14h 16 BYTEs    (ret) port (see #2502)
  7287.  24h    BYTE    (call) port type for third port
  7288.  25h 16 BYTEs    (ret) port (see #2502)
  7289.  35h    BYTE    (call) port type for fourth port
  7290.  36h 16 BYTEs    (ret) port (see #2502)
  7291.  46h    BYTE    (call) port type for fifth port
  7292.  47h 16 BYTEs    (ret) port (see #2502)
  7293.  57h    BYTE    reserved
  7294. SeeAlso: #2609
  7295. --------N-610007BX0003-----------------------
  7296. INT 61 - Banyan VINES - FIND A SERVICE
  7297.     AX = 0007h
  7298.     BX = 0003h
  7299.     DS:DX -> port control block (see #2608)
  7300. Return: AX = status (see AX=0007h)
  7301. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h
  7302.  
  7303. Format of port control block:
  7304. Offset    Size    Description    (Table 2608)
  7305.  00h    WORD    ???
  7306.  02h    WORD    ???
  7307.  04h 16    BYTEs    IPC port (see #2502 at AX=0001h"Sosock")
  7308.  14h  5    WORDs    ???
  7309. SeeAlso: #2614
  7310. --------N-610007BX0004-----------------------
  7311. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  7312.     AX = 0007h
  7313.     BX = 0004h
  7314.     DS:DX -> StreetTalk name of service (max 64 bytes)
  7315.     DS:DI -> port record block (see #2609)
  7316. Return: AX = status (see #2606)
  7317. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah
  7318.  
  7319. Format of VINES port record block:
  7320. Offset    Size    Description    (Table 2609)
  7321.  00h    WORD    number of 17-byte elements
  7322.  02h    BYTE    port type for first port
  7323.  03h 16 BYTEs    first IPC port (see #2502)
  7324.  13h    BYTE    port type for second port
  7325.  14h 16 BYTEs    second IPC port (see #2502)
  7326.  24h    BYTE    port type for third port
  7327.  25h 16 BYTEs    third IPC port (see #2502)
  7328.  35h    BYTE    port type for fourth port
  7329.  36h 16 BYTEs    fourth IPC port (see #2502)
  7330.  46h    BYTE    port type for fifth port
  7331.  47h 16 BYTEs    fifth IPC port (see #2502)
  7332.  57h    BYTE    reserved
  7333. SeeAlso: #2607
  7334. --------N-610007BX0005-----------------------
  7335. INT 61 - Banyan VINES - GET USER NAME
  7336.     AX = 0007h
  7337.     BX = 0005h
  7338.     DS:DX -> 64-byte buffer for user's StreetTalk name
  7339. Return: AX = status (see also #2606)
  7340.         0000h successful
  7341.         0001h network software not installed or incompatible
  7342. Note:    if no user logged in, first byte of returned name will be 00h
  7343. SeeAlso: AX=0007h/BX=0007h
  7344. --------N-610007BX0006-----------------------
  7345. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  7346.     AX = 0007h
  7347.     BX = 0006h
  7348.     SI = error code (>100)
  7349.     DS:DX -> 80-byte buffer for error text
  7350. Return: AX = status (see also #2606)
  7351.         0000h successful
  7352.         0001h network software not installed or incompatible
  7353. --------N-610007BX0007-----------------------
  7354. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  7355.     AX = 0007h
  7356.     BX = 0007h
  7357.     DS:DX -> NiceName block (see #2610)
  7358. Return: AX = status (see #2606)
  7359. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
  7360.  
  7361. Format of VINES NiceName block:
  7362. Offset    Size    Description    (Table 2610)
  7363.  00h    WORD    type of name
  7364.         0064h (100) organization
  7365.         00C8h (200) group
  7366.         012Ch (300) item
  7367.  02h    WORD    pointer to ASCIZ input name
  7368.  04h    WORD    pointer to 64-byte buffer for output name
  7369. SeeAlso: #2611
  7370. --------N-610007BX0008-----------------------
  7371. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  7372.     AX = 0007h
  7373.     BX = 0008h
  7374.     DS:DX -> enumerate block (see #2611)
  7375. Return: AX = status (see also #2606)
  7376.         0000h successful
  7377.         0411h all matching names have been returned
  7378.         0412h some groups unavailable, all available matches returned
  7379. Note:    each program using this call should continue until a nonzero status
  7380.       is returned; otherwise, some resources will not be freed for several
  7381.       hours
  7382. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h
  7383.  
  7384. Format of VINES enumerate block:
  7385. Offset    Size    Description    (Table 2611)
  7386.  00h    WORD    return code
  7387.  02h    WORD    pointer to pattern string
  7388.  04h    WORD    enumerate type
  7389.         0064h (100) organization
  7390.         00C8h (200) group
  7391.         012Ch (300) item
  7392.  06h    WORD    enumerate class
  7393.         0000h unspecified (return all matching items)
  7394.         0001h user names
  7395.         0002h service names
  7396.         0003h list names
  7397.         0004h nicknames
  7398.  08h    WORD    pointer to category criteria block (see #2612) or 0
  7399.  0Ah    WORD    pointer to array of 64-byte returned names
  7400.  0Ch    WORD    number of names returned
  7401.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  7402.           call)
  7403. SeeAlso: #2610
  7404.  
  7405. Format of category criteria block:
  7406. Offset    Size    Description    (Table 2612)
  7407.  00h    WORD    exclude flag
  7408.         0000h return only items with the specified categories
  7409.         0001h return all items except those with the given categories
  7410.  02h    WORD    number of categories (max 5, 0000h = match all categories)
  7411.  04h    WORD    category 1 value (see #2613)
  7412.  06h    WORD    category 2 value
  7413.  08h    WORD    category 3 value
  7414.  0Ah    WORD    category 4 value
  7415.  0Ch    WORD    category 5 value
  7416. SeeAlso: #2611
  7417.  
  7418. (Table 2613)
  7419. Values for common VINES service categories:
  7420.  0001h    server service
  7421.  0002h    file service
  7422.  0003h    print service
  7423.  0004h    mail service
  7424.  0005h    StreetTalk
  7425.  0006h    time service
  7426.  0007h    FTP service
  7427.  0008h    semaphore service
  7428.  0009h    3270/SNA service
  7429.  000Ah    terminal emulation service
  7430.  000Bh    asynchronous terminal service
  7431.  000Ch    NETBIOS service
  7432.  000Dh    PC-based service
  7433.  000Eh    BSC service
  7434.  000Fh    APPC service
  7435.  0010h    NM service
  7436.  0011h    VS service
  7437.  0012h    POP service
  7438.  0013h    AFP service
  7439.  0014h    VCS service
  7440.  0015h    EMS service
  7441.  0016h    LN service
  7442.  0017h    BS service
  7443.  0023h    RIPL service
  7444.  0064h    ADM service
  7445. SeeAlso: #2612
  7446. --------N-610007BX0009-----------------------
  7447. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
  7448.     AX = 0007h
  7449.     BX = 0009h
  7450.     SI = error code
  7451.     DS:DX -> 80-byte buffer for error text
  7452.     DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format)
  7453. Return: AX = status (see AX=0007h)
  7454. Note:    Same as AX=0007h/BX=0006h, except IPC port is specified explicitly
  7455. SeeAlso: AX=0007h/BX=0006h
  7456. --------N-610007BX000A-----------------------
  7457. INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
  7458.     AX = 0007h
  7459.     BX = 000Ah
  7460.     DS:DX -> port control block (see #2614)
  7461. Return: AX = status (see AX=0007h)
  7462. Note:    This function cannot be called from applications, as the DS register
  7463.       is checked against the redirector data segment address (status code
  7464.       0001h will be returned if DS doesn't match)
  7465. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h
  7466.  
  7467. Format of port control block:
  7468. Offset    Size    Description    (Table 2614)
  7469.  00h    WORD    ???
  7470.  02h    WORD    ???
  7471.  04h 16    BYTEs    IPC port (see #2502 at AX=0001h"Sosock")
  7472.  14h 14 WORDs    ???
  7473. SeeAlso: #2608
  7474. --------V-610008-----------------------------
  7475. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
  7476.     AX = 0008h
  7477.     BX = X start of zoom offset
  7478.     CX = Y start of zoom offset
  7479. Desc:    specifies the first byte of video memory to appear in the zoom window
  7480. Range:    unknown
  7481. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  7482.       obtained by calling INT 16/AH=FFh
  7483.     not all vendors include the Tseng TSR which supports these functions
  7484. SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  7485. --------N-610008BX0000-----------------------
  7486. INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
  7487.     AX = 0008h
  7488.     BX = 0000h
  7489. Return: AX = status
  7490.         0000h successful
  7491.     ES:DX = far pointer to handler
  7492. Desc:    The TalkPort is a facility to display event messages (e.g. mail
  7493.       received, printing on a local printer, ...) on the screen
  7494. Note:    This service is handled by the redirector
  7495. SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002h
  7496. --------N-610008BX0001-----------------------
  7497. INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
  7498.     AX = 0008h
  7499.     BX = 0001h
  7500.     ES:DX -> new handler
  7501. Return: AX = status
  7502.         0000h successful
  7503. SeeAlso: AX=0008h/BX=0000h
  7504. --------N-610008BX0002-----------------------
  7505. INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
  7506.     AX = 0008h
  7507.     BX = 0002h
  7508.     CX = message display flags (see #2615)
  7509.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  7510. Return: AX = status
  7511.         0000h successful
  7512.         000Bh message display function currently busy
  7513.         000Ch message queue full
  7514. Notes:    queues up to three messages to be displayed on the bottom line
  7515.     This service is handled by the redirector
  7516.     In a DOS session, TalkPort messages are displayed on display line 25;
  7517.       in a Windows session, TalkPort messages are displayed in dialog boxes
  7518. SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h
  7519.  
  7520. Bitfields for VINES message display flags:
  7521. Bit(s)    Description    (Table 2615)
  7522.  0    message will remain on screen until user presses ^X
  7523.  1    ring bell after displaying message
  7524.  2    blink
  7525. --------N-610008BX0003-----------------------
  7526. INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
  7527.     AX = 0008h
  7528.     BX = 0003h
  7529.     DS:DX -> request block (see #2616)
  7530. Return: AX = status
  7531.         0000h successful
  7532.         0001h network software not installed or incompatible
  7533. Notes:    message handler should not call BIOS or DOS functions, and should
  7534.       either call next handler or simply return
  7535.     to stop intercepting messages, set prev and next request blocks to
  7536.       point at each other
  7537. SeeAlso: AX=0008h/BX=0002h
  7538.  
  7539. Format of VINES request block for 25-th line messages:
  7540. Offset    Size    Description    (Table 2616)
  7541.  00h    DWORD    pointer to user-written message handler
  7542.  04h    DWORD    pointer to next request block (filled in by VINES)
  7543.  08h    DWORD    pointer to previous request block (filled in by VINES)
  7544.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see #2617)
  7545.  
  7546. Format of message storage area:
  7547. Offset    Size    Description    (Table 2617)
  7548.  00h 16 BYTEs    IPC port of message sender (see #2502)
  7549.  10h    BYTE    message flags
  7550.  11h    WORD    reserved
  7551.  13h    BYTE    length of message
  7552.  14h 80 BYTEs    message text
  7553. SeeAlso: #2616
  7554. --------N-610009-----------------------------
  7555. INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
  7556.     AX = 0009h
  7557.     other parameters, if any, unknown
  7558. --------N-61000A-----------------------------
  7559. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  7560.     AX = 000Ah
  7561. Note:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  7562.       which is loaded second.  The first interface loaded will use AX=0002h
  7563. SeeAlso: INT 61/AX=0002h
  7564. --------N-61000B-----------------------------
  7565. INT 61 - Banyan VINES - SEMAPHORE SERVICE
  7566.     AX = 000Bh
  7567.     other parameters, if any, unknown
  7568. --------N-61000C-----------------------------
  7569. INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
  7570.     AX = 000Ch
  7571.     other parameters, if any, unknown
  7572. --------N-61000D-----------------------------
  7573. INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
  7574.     AX = 000Dh
  7575.     other parameters, if any, unknown
  7576. --------N-61000E-----------------------------
  7577. INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
  7578.     AX = 000Eh
  7579.     other parameters, if any, unknown
  7580. --------N-61000F-----------------------------
  7581. INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
  7582.     AX = 000Fh
  7583.     CX:BX -> request block (see #2618)
  7584.     DX = application's data segment (should be = CX)
  7585.     ES = DS
  7586. Return: AX = status
  7587.         0000h successful
  7588.         0099h invalid operation
  7589.         00A5h resource not available
  7590. Desc:    StreetTalk access with session handles
  7591. Notes:    This service is handled by the adapter driver
  7592.     The request dispatch table contains dummy entries for subfunctions
  7593.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  7594.       (invalid operation) in the request block's result buffer
  7595.     This interface does the same as the corresponding AX=0001h interface,
  7596.       but with a slightly modified request block structure (i.e it allows
  7597.       FAR parameter block pointers) and without expecting DS=0001h
  7598.     Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  7599.       VINES 5.53) ignore the value in CX and use the value from DX instead
  7600. SeeAlso: AX=0001h,AX=000Fh/SF=0001h
  7601.  
  7602. Format of request block:
  7603. Offset    Size    Description    (Table 2618)
  7604.  00h    WORD    subfunction number (01h-16h)
  7605.  02h    WORD    magic number (FEFEh)
  7606.  04h    WORD    buffer for return code (set to 0 before calling)
  7607.  06h    WORD    reserved (will be set to client DS)
  7608.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  7609.  0Ah    DWORD    far pointer to parameter block
  7610.  0Eh    WORD    StreetTalk handle
  7611. SeeAlso: #2498 at INT 61/AX=0001h
  7612. --------N-61000FSF0001-----------------------
  7613. INT 61 - Banyan VINES - OPEN SOCKET
  7614.     AX = 000Fh subfn 0001h
  7615.     CX:BX -> request block (see #2619)
  7616.     DX = application's data segment (should be = CX)
  7617.     ES = DS
  7618. Return: AX = status
  7619.         0000h successful
  7620.         00A5h resource not available
  7621. Desc:    Opens a socket and returns a socket handle
  7622.  
  7623. Format of request block:
  7624. Offset    Size    Description    (Table 2619)
  7625.  00h    WORD    0001h
  7626.  02h    WORD    magic number (FEFEh)
  7627.  04h    WORD    buffer for return code (set to 0 before calling)
  7628.  06h    WORD    reserved (will be set to client DS)
  7629.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  7630.  0Ah    DWORD    far pointer to parameter block (see #2620)
  7631.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  7632.  
  7633. Format of parameter block:
  7634. Offset    Size    Description    (Table 2620)
  7635.  00h    WORD    reserved
  7636.  02h    WORD    address family (0003h = VINES)
  7637.  04h    WORD    socket type (0001h = IPC, 0002h = SPP)
  7638.  06h    WORD    protocol number (FFFFh = default protocol)
  7639.  08h    WORD    reserved
  7640.  0Ah    WORD    local port number (0 = transient, 1..1FFh = well-known port)
  7641.  0Ch    DWORD    far pointer to socket handle buffer (2 bytes)
  7642.  10h    DWORD    far pointer to IPC port buffer (16 bytes)
  7643. SeeAlso: #2619
  7644. --------N-61000FSF0002-----------------------
  7645. INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
  7646.     AX = 000Fh subfn 0002h
  7647.     CX:BX -> request block (see #2621)
  7648.     DX = application's data segment (should be = CX)
  7649.     ES = DS
  7650. Return: AX = status
  7651.         0000h successful
  7652.         00A5h resource not available
  7653. Desc:    send data to a socket identified by its socket handle
  7654.  
  7655. Format of request block:
  7656. Offset    Size    Description    (Table 2621)
  7657.  00h    WORD    0002h
  7658.  02h    WORD    magic number (FEFEh)
  7659.  04h    WORD    buffer for return code (set to 0 before calling)
  7660.  06h    WORD    reserved (will be set to client DS)
  7661.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  7662.  0Ah    DWORD    far pointer to parameter block (see #2622)
  7663.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  7664.  
  7665. Format of parameter block:
  7666. Offset    Size    Description    (Table 2622)
  7667.  00h    WORD    buffer for estimated communication cost in 220 msec ticks
  7668.  02h    WORD    buffer for return code (set to 0 before calling)
  7669.  04h    WORD    socket handle
  7670.  06h    DWORD    far pointer to IPC/SPP message buffer
  7671.  0Ah    WORD    length of IPC/SPP message buffer
  7672.  0Ch    WORD    option flags
  7673.         bit 0: asynchronous communication
  7674.         bit 1: reliable message
  7675.         bit 3: end of message
  7676.         bit 4: vectored I/O
  7677.  0Eh 16    BYTEs    socket address (IPC port of source)
  7678.  1Eh    WORD    not used (set to 0 before calling)
  7679.  20h    WORD    SPP connection id (0 for IPC messages)
  7680.  22h    WORD    request type (1 = data, 2 = connect SPP, 3 = disconnect SPP)
  7681. SeeAlso: #2621
  7682. --------N-61000FSF0004-----------------------
  7683. INT 61 - Banyan VINES - CLOSE SOCKET
  7684.     AX = 000Fh subfn 0004h
  7685.     CX:BX -> request block (see #2623)
  7686.     DX = application's data segment (should be = CX)
  7687.     ES = DS
  7688. Return: AX = status
  7689.         0000h successful
  7690.         00A5h resource not available
  7691. Desc:    Closes a socket identified by its socket handle
  7692.  
  7693. Format of request block:
  7694. Offset    Size    Description    (Table 2623)
  7695.  00h    WORD    0004h
  7696.  02h    WORD    magic number (FEFEh)
  7697.  04h    WORD    buffer for return code (set to 0 before calling)
  7698.  06h    WORD    reserved (will be set to client DS)
  7699.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  7700.  0Ah    DWORD    far pointer to socket handle (2 bytes)
  7701.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  7702. --------N-61000FSF0008-----------------------
  7703. INT 61 - Banyan VINES - GET PROCESS HANDLE
  7704.     AX = 000Fh subfn 0008h
  7705.     CX:BX -> request block (see #2624)
  7706.     DX = application's data segment (should be = CX)
  7707.     ES = DS
  7708. Return: AX = status
  7709.         0000h successful
  7710.         00A5h resource not available
  7711. Desc:    Returns a process handle to be used in other request blocks
  7712. Notes:    This function is a prerequisite to all AX=000Fh subfunctions which
  7713.       expect a process handle in the request block
  7714.     Although subsequent calls from the same application return different
  7715.       process handles, there seem to be no restrictions on how many times
  7716.       an application may call this function (in fact, the code in the VINES
  7717.       toolkit library always calls it before issueing other AX=000Fh calls)
  7718.  
  7719. Format of request block:
  7720. Offset    Size    Description    (Table 2624)
  7721.  00h    WORD    0008h
  7722.  02h    WORD    magic number (FEFEh)
  7723.  04h    WORD    buffer for return code (set to 0 before calling)
  7724.  06h    WORD    reserved
  7725.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  7726.  0Ah    DWORD    process type (1 = transient, 2 = resident; destroyed on exit)
  7727.  0Eh    WORD    buffer for process handle
  7728. --------N-610010-----------------------------
  7729. INT 61 - Banyan VINES - INTERFACE TO NBNS
  7730.     AX = 0010h
  7731.     other parameters, if any, unknown
  7732. --------N-6101-------------------------------
  7733. INT 61 - Banyan VINES - CHECK SERVICE
  7734.     AH = 01h
  7735.     AL = service ID (see #2625)
  7736. Return: AX = status
  7737.         0000h installed
  7738.         0001h not installed
  7739.         0002h invalid ID
  7740.         0003h invalid function
  7741. Note:    Only the offset part of the service pointer is checked for a nonzero
  7742.       value
  7743. SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES"
  7744.  
  7745. (Table 2625)
  7746. Values for VINES service ID:
  7747.  01h    communications
  7748.  02h    primary 3270 emulation
  7749.  03h    async terminal emulation
  7750.  04h    file deflection
  7751.  05h    print service control
  7752.  06h    get address of something
  7753.  07h    StreetTalk access service
  7754.  08h    environment
  7755.  09h    NETBIOS client service
  7756.  0Ah    secondary 3270 emulation
  7757.  0Bh    semaphore service
  7758.  0Ch    3270 emulation active status
  7759.  0Dh    T3270 keyboard interrupt simulator
  7760.  0Eh    enhanced 3270 service
  7761.  0Fh    comm Windows entry point
  7762.  10h    interface to NBNS
  7763. --------N-6101--BX0000-----------------------
  7764. INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
  7765.     AH = 01h
  7766.     BX = 0000h
  7767.     DH = tag number
  7768.     DL = device number
  7769.     DS:SI -> buffer to send to kernel
  7770.     ES:DI -> integer containing size of buffer
  7771. Return: CF clear if successful
  7772.     CF set on error
  7773.         AX = error code (see #2493 at INT 61"PC/TCP")
  7774. Range:    INT 20 to INT E0, selected by configuration
  7775. Notes:    there are a large number of tags available; the items returned
  7776.       all refer to local kernel configuration, and are not needed in
  7777.       normal use.
  7778.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  7779. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=02"PC/TCP"
  7780. --------N-6102-------------------------------
  7781. INT 61 - Banyan VINES - GET REVISION NUMBER
  7782.     AH = 02h
  7783.     DS:DX -> 2-byte buffer for result
  7784. Return: AX = 0000h installed
  7785.         DS:DX buffer contains revision number as
  7786.         10000d * major_ver + 100d * minor_ver + patch_revision
  7787. SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"
  7788. --------N-6102--BX0000-----------------------
  7789. INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
  7790.     AH = 02h
  7791.     BX = 0000h
  7792.     DH = tag number
  7793.     DL = device number
  7794.     DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
  7795.     ES:DI -> integer containing size of buffer
  7796. Return: CF clear if successful
  7797.         Data loaded into specified buffer, and size value altered
  7798.     CF set on error
  7799.         AX = error code (see #2493 at INT 61"PC/TCP")
  7800. Range:    INT 20 to INT E0, selected by configuration
  7801. Notes:    there are a large number of tags available; the items returned
  7802.       all refer to local kernel configuration, and are not needed in
  7803.       normal use.
  7804.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  7805. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  7806. --------N-6103-------------------------------
  7807. INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
  7808.     AH = 03h
  7809.     AL = service ID (see #2625)
  7810.     DS:DX -> new service handler
  7811. Return: AX = 0000h successful
  7812. SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"
  7813. --------N-6104-------------------------------
  7814. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
  7815.     AH = 04h
  7816.     DS:DX -> 2-byte buffer containing the VINES revision number
  7817.         DS:DX buffer contains revision number as
  7818.         10000d * major_ver + 100d * minor_ver + patch_revision
  7819. Return: AX = status
  7820.         0000h valid version
  7821.         0004h out of range
  7822. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  7823. SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"
  7824. --------N-6105-------------------------------
  7825. INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
  7826.     AH = 05h
  7827.     BX = network descriptor
  7828. Return: CF clear if successful
  7829.         DX:AX = Internet address of ND
  7830.     CF set on error
  7831.         AX = error code (see #2493 at INT 61"PC/TCP")
  7832. Range:    INT 20 to INT E0, selected by configuration
  7833. Notes:    the installation check consists of testing for the signature "TCPTSR"
  7834.       three bytes beyond the start of the interrupt handler
  7835. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
  7836. SeeAlso: INT 63/AH=25h"BW-TCP"
  7837. --------N-6105-------------------------------
  7838. INT 61 - Banyan VINES - READ PCCONFIG BYTES
  7839.     AH = 05h
  7840.     CX = number of bytes to copy
  7841.         (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+)
  7842.     SI = offset of area to be copied (see #2626,#2627)
  7843. Return: AX = status
  7844.         0000h successful
  7845.         0004h out of range
  7846. Notes:    The PCCONFIG area is located in the code segment of the BANV handler
  7847.     To find out which PCCONFIG structure applies, call this function first
  7848.       with CX=0006h to get the VINES revision number
  7849. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES"
  7850.  
  7851. Format of PCCONFIG area (VINES 4.00):
  7852. Offset    Size    Description    (Table 2626)
  7853.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  7854.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  7855.  08h    WORD    hardware interrupt level
  7856.  0Ah    WORD    DMA channel
  7857.  0Ch    WORD    I/O address
  7858.  0Eh    DWORD    adapter ROM address (linear)
  7859.  12h    DWORD    adapter RAM address (linear)
  7860.  16h    WORD    BANV interrupt
  7861.  18h 32    BYTEs    default login group #1
  7862.  38h 32    BYTEs    default login group #2
  7863.  58h 32    BYTEs    default login group #3
  7864.  78h    WORD    semaphore locking support flag
  7865.  7Ah    WORD    extended StreetTalk flag
  7866.  7Ch    WORD    maximum number of file volumes
  7867.  7Eh    WORD    NetBIOS flag
  7868.  80h 60    BYTEs    default network adapter
  7869.  BCh 60    BYTEs    default communications driver
  7870.  F8h    WORD    maximum number of SPP connections
  7871.  FAh    WORD    maximum number of open sockets
  7872.  FCh    WORD    communications buffer size (10..60 KB)
  7873.  FEh 20    BYTEs    location directory on drive Z:
  7874. 112h 33    BYTEs    auxiliary configuration area #1 (see #2628)
  7875. 133h 33    BYTEs    auxiliary configuration area #2
  7876. 154h 33    BYTEs    auxiliary configuration area #3
  7877. SeeAlso: #2627
  7878.  
  7879. Format of PCCONFIG area (VINES 4.10+):
  7880. Offset    Size    Description    (Table 2627)
  7881.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  7882.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  7883.  08h    WORD    hardware interrupt level
  7884.  0Ah    WORD    DMA channel
  7885.  0Ch    WORD    I/O address
  7886.  0Eh    DWORD    adapter ROM address (linear)
  7887.  12h    DWORD    adapter RAM address (linear)
  7888.  16h    WORD    BANV interrupt
  7889.  18h 32    BYTEs    default login group #1
  7890.  38h 32    BYTEs    default login group #2
  7891.  58h 32    BYTEs    default login group #3
  7892.  78h    WORD    semaphore locking support flag
  7893.  7Ah    WORD    extended StreetTalk flag
  7894.  7Ch    WORD    named pipes support flag
  7895.  7Eh    WORD    maximum number of file volumes
  7896.  80h    WORD    NetBIOS flag
  7897.  82h 60    BYTEs    default network adapter
  7898.  BEh 60    BYTEs    default communications driver
  7899.  FAh    WORD    maximum number of SPP connections
  7900.  FCh    WORD    maximum number of open sockets
  7901.  FEh    WORD    communications buffer size (10..60 KB)
  7902. 100h    WORD    number of mailslots
  7903. 102h    WORD    maximum number of open files
  7904. 104h    WORD    maximum number of NetBIOS sessions
  7905. 106h    WORD    maximum number of NetBIOS commands
  7906. 108h 20    BYTEs    location directory on drive Z:
  7907. 11Ch 33    BYTEs    auxiliary configuration area #1 (see #2628)
  7908. 13Dh 33    BYTEs    auxiliary configuration area #2
  7909. 15Eh 33    BYTEs    auxiliary configuration area #3
  7910.  
  7911. Format of auxiliary configuration area:
  7912. Offset    Size    Description    (Table 2628)
  7913.  00h 16    BYTEs    item name (no zero terminator if length = 16)
  7914.  10h    BYTE    item value type (1=text, else numeric)
  7915.  11h 16    BYTEs    item value (string if type 1, else DWORD)
  7916. SeeAlso: #2626,#2627
  7917. --------N-6106-------------------------------
  7918. INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  7919.     AH = 06h
  7920.     BX = network descriptor (must be allocated and open)
  7921.     DS:SI -> 38-byte buffer for interface statistics (see #2629)
  7922. Return: CF clear if successful
  7923.         buffer filled
  7924.     CF set on error
  7925.         AX = error code (see #2493)
  7926. Desc:    returns the statistics relevant to the particular network interface
  7927.        used by the specified network descriptor
  7928. Range:    INT 20 to INT E0, selected by configuration
  7929. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
  7930.  
  7931. Format of PC/TCP interface statistics:
  7932. Offset    Size    Description    (Table 2629)
  7933.  00h    WORD    interface class (e.g. 802.3)
  7934.  02h    WORD    type (manufacturer) of interface
  7935.  04h    WORD    interface number
  7936.  06h    DWORD    (big-endian) IP address of interface
  7937.  0Ah    DWORD    subnet mask
  7938.  0Eh    WORD    0001h if interface is up
  7939.  10h    DWORD    total packets received
  7940.  14h    DWORD    total packets sent
  7941.  18h    DWORD    receive errors
  7942.  1Ch    DWORD    send errors
  7943.  20h    WORD    length of local net address (e.g. 0006h for Ethernet)
  7944.  22h    DWORD    pointer to local net address
  7945. --------N-6106-------------------------------
  7946. INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
  7947.     AH = 06h
  7948.     DS:DX -> 4-byte buffer for far pointer to PCCONFIG area
  7949. Return: AX = 0000h successful
  7950. Note:    The PCCONFIG area is located in the code segment of the BANV handler
  7951. SeeAlso: AH=05h"VINES",AH=0Bh"VINES"
  7952. --------N-6107-------------------------------
  7953. INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
  7954.     AH = 07h
  7955.     BX = local network descriptor
  7956. Return: CF clear if successful
  7957.         AX = global network descriptor
  7958.     CF set on error
  7959.         AX = error code (see #2493)
  7960. Notes:    the new network descriptor can be accessed from all processes and is
  7961.       independent of DOS
  7962.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  7963. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  7964. SeeAlso: INT 61/AH=29h
  7965. --------N-6107-------------------------------
  7966. INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
  7967.     AH = 07h
  7968.     DS:DX -> 4-byte buffer for result
  7969. Return: AX = 0000h successful
  7970.         DS:DX buffer contains revision number as
  7971.         10000d * major_ver + 100d * minor_ver + patch_revision
  7972. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"
  7973. --------b-6107-------------------------------
  7974. INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
  7975.     AH = 07h
  7976.     AL = drive number (00h = A:,01h = B:)
  7977. Return: CF clear if successful
  7978.     CF set on error
  7979.         AH = error code (see #0142 at INT 13/AH=01h)
  7980. Note:    do not use this function to format the internal disk (drive number 02h)
  7981. SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"
  7982. --------N-6108-------------------------------
  7983. INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
  7984.     AH = 08h
  7985.     BX = network descriptor
  7986. Return: CF clear if successful
  7987.         AX = 0000h (BWPCTCP shim)
  7988.     CF set on error
  7989.         AX = error code (see #2493)
  7990. Range:    INT 20 to INT E0, selected by configuration
  7991. Note:    the descriptor will be closed and resources released.  If a stream
  7992.       descriptor, the protocol (FIN etc) is completed unless the
  7993.       non-blocking option has been set.
  7994. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
  7995. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  7996. --------N-6108-------------------------------
  7997. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
  7998.     AH = 08h
  7999.     DS:DX -> 4-byte buffer containing the VINES revision number
  8000.         DS:DX buffer contains revision number as
  8001.         10000d * major_ver + 100d * minor_ver + patch_revision
  8002. Return: AX = status
  8003.         0000h valid version
  8004.         0004h out of range
  8005. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  8006. SeeAlso: AH=04h"VINES",AH=07h"VINES"
  8007. --------b-6108-------------------------------
  8008. INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
  8009.     AH = 08h
  8010. Return: AX = segment address of RAMdisk
  8011.     BX = size in KB
  8012. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"
  8013. --------N-6109-------------------------------
  8014. INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
  8015.     AH = 09h
  8016. Return: CF clear
  8017. Range:    INT 20 to INT E0, selected by configuration
  8018. Notes:    this call performs function 08h on every non-global network descriptor.
  8019.       Global descriptors must be released individually.
  8020. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  8021. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  8022. --------N-6109-------------------------------
  8023. INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
  8024.     AH = 09h
  8025.     other parameters, if any, unknown
  8026. SeeAlso: AH=0Ah"VINES"
  8027. --------b-6109-------------------------------
  8028. INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
  8029.     AH = 09h
  8030.     BX = desired size of disk in KB
  8031. Return: CF clear if successful
  8032.     CF set on error
  8033.         BX = maximum possible size in KB
  8034. Desc:    resize and erase the internal RAMdisk, then reboot the system
  8035. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio"
  8036. SeeAlso: AH=0Bh"Portfolio"
  8037. --------N-610A-------------------------------
  8038. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  8039.     AH = 0Ah
  8040.     ???
  8041. Return: ???
  8042. Notes:    this function is described as "unused" in the v2.05 and v2.2
  8043.       documentation
  8044.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8045. SeeAlso: AH=0Bh
  8046. --------N-610A-------------------------------
  8047. INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
  8048.     AH = 0Ah
  8049.     other parameters, if any, unknown
  8050. SeeAlso: AH=09h"VINES"
  8051. --------N-610B-------------------------------
  8052. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  8053.     AH = 0Bh
  8054.     ???
  8055. Return: ???
  8056. Range:    INT 20 to INT E0, selected by configuration
  8057. Notes:    this function is described as "unused" in the v2.05 and v2.2
  8058.       documentation
  8059.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8060. SeeAlso: AH=0Ah
  8061. --------N-610B-------------------------------
  8062. INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
  8063.     AH = 0Bh
  8064.     other parameters, if any, unknown
  8065. SeeAlso: AH=05h"VINES",AH=06h"VINES"
  8066. --------b-610B-------------------------------
  8067. INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
  8068.     AH = 0Bh
  8069.     AL = drive number (00h = A:,01h = B:)
  8070. Return: CF clear if successful (card present and correct)
  8071.     CF set on error
  8072.         AH = error code (see #0142 at INT 13/AH=01h)
  8073. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"
  8074. --------N-610C-------------------------------
  8075. INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
  8076.     AH = 0Ch
  8077.     BX = network descriptor or one of the following:
  8078.         FFFCh for kernel ICMP statistics (see #2633)
  8079.         FFFDh for kernel UDP statistics (see #2632)
  8080.         FFFEh for kernel IP statistics (see #2631)
  8081.         FFFFh for kernel TCP statistics (see #2630)
  8082.     DS:DX -> 64-byte buffer
  8083. Return: CF clear if successful
  8084.         buffer filled
  8085.     CF set on error
  8086.         AX = error code (see #2493)
  8087. Notes:    the fields filled in for a network descriptor depend on the protocol
  8088.       family used by that descriptor's connection
  8089.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8090. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8091.  
  8092. Format of PC/TCP kernel TCP statistics:
  8093. Offset    Size    Description    (Table 2630)
  8094.  00h 16 BYTEs    unused
  8095.  10h    DWORD    bytes sent
  8096.  14h    DWORD    bytes received
  8097.  18h  8 BYTEs    unused
  8098.  20h    DWORD    packets sent
  8099.  24h    DWORD    packets received
  8100.  28h    DWORD    bad checksums
  8101.  2Ch    DWORD    count of window ignored by remote
  8102.  30h    DWORD    timeouts
  8103.  34h    DWORD    resets
  8104.  38h    DWORD    duplicate packets
  8105.  3Ch    DWORD    retransmits
  8106. SeeAlso: #2631,#2632,#2633
  8107.  
  8108. Format of PC/TCP kernel IP statistics:
  8109. Offset    Size    Description    (Table 2631)
  8110.  00h  8 BYTEs    unused
  8111.  08h    DWORD    invalid IP header length errors
  8112.  0Ch    DWORD    protocol errors (unwanted packets)
  8113.  10h    DWORD    duplicate fragments received
  8114.  14h    DWORD    bad fragments received
  8115.  18h    DWORD    security errors
  8116.  1Ch    DWORD    count of bad IP addresses received
  8117.  20h    DWORD    packets sent
  8118.  24h    DWORD    packets received
  8119.  28h    DWORD    bad checksums received
  8120.  2Ch    DWORD    total IP protocol errors
  8121.  30h    DWORD    fragmentation errors
  8122.  34h    DWORD    IP packets discarded + bad security + bad fragments
  8123.  38h    DWORD    fragments received
  8124.  3Ch  4 BYTEs    unused
  8125. SeeAlso: #2630,#2632,#2633
  8126.  
  8127. Format of PC/TCP kernel UDP statistics:
  8128. Offset    Size    Description    (Table 2632)
  8129.  00h 28 BYTEs    unused
  8130.  1Ch    DWORD    packets dropped for lack of buffers
  8131.  20h    DWORD    packets sent
  8132.  24h    DWORD    packets received
  8133.  28h    DWORD    bad checksums
  8134.  2Ch    DWORD    port not listening errors
  8135.  30h  4 BYTEs    unused
  8136.  34h    DWORD    truncated receives
  8137.  38h  8 BYTEs    unused
  8138. SeeAlso: #2630,#2631,#2633
  8139.  
  8140. Format of PC/TCP kernel ICMP statistics:
  8141. Offset    Size    Description    (Table 2633)
  8142.  00h    DWORD    "TimeEx" sent
  8143.  04h    DWORD    "TimeEx" received
  8144.  08h    DWORD    "ParamProb" sent
  8145.  0Ch    DWORD    "ParamProb" received
  8146.  10h    DWORD    redirects received
  8147.  14h    DWORD    source quenches received
  8148.  18h    DWORD    ICMP Echo Requests ("ping") sent
  8149.  1Ch    DWORD    ICMP Echo Requests received
  8150.  20h    DWORD    packets sent
  8151.  24h    DWORD    packets received
  8152.  28h    DWORD    bad packets received
  8153.  2Ch    DWORD    "DestUn" received
  8154.  30h    DWORD    packet send errors
  8155.  34h    DWORD    "DestUn" sent
  8156.  38h    DWORD    ICMP Echo replies received
  8157.  3Ch    DWORD    ICMP Echo replies sent
  8158. SeeAlso: #2630,#2631,#2632
  8159. --------N-610D-------------------------------
  8160. INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
  8161.     AH = 0Dh
  8162.     BX = possible network descriptor
  8163. Return: CF clear if valid
  8164.     CF set on error
  8165.         AX = error code (see #2493 at INT 61"PC/TCP")
  8166. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  8167. SeeAlso: INT 61/AH=22h
  8168. --------b-610D-------------------------------
  8169. INT 61 - Atari Portfolio - GET SCREEN SIZE
  8170.     AH = 0Dh
  8171. Return: AX = physical screen size (AH=rows, AL=columns)
  8172.     DX = logical screen size (DH=rows, DL=columns)
  8173. SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"
  8174. --------N-610E-------------------------------
  8175. INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
  8176.     AH = 0Eh
  8177.     BX = maximum value of network descriptor for which to return info
  8178.     DS:DX -> 32-bit (max) array of bit flags for read readiness
  8179.     ES:DI -> 32-bit (max) array of bit flags for write readiness
  8180. Return: CF clear
  8181. Range:    INT 20 to INT E0, selected by configuration
  8182. Notes:    bits in the DS:DX buffer are set if the corresponding network
  8183.       descriptor may be read without blocking; bits in the ES:DI buffer
  8184.       are set if the corresponding network descriptor may be written
  8185.       without blocking.  This implies that the network descriptor has
  8186.       opened correctly and the protocol initialized.
  8187.     the installation check consists of testing for the signature "TCPTSR"
  8188.       three bytes beyond the start of the interrupt handler
  8189. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8190. --------b-610E-------------------------------
  8191. INT 61 - Atari Portfolio - GET/SET SCREEN MODE
  8192.     AH = 0Eh
  8193.     AL = function
  8194.         00h get mode
  8195.         01h set mode
  8196.         DL = new mode (see #2634)
  8197. Return: DL = current/old mode
  8198. Note:    if changing the mode places the cursor position or virtual screen
  8199.       origin outside the displayed area, the screen origin will be reset
  8200.       to (0,0), the screen cleared, and the cursor position set to (0,0)
  8201. SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h
  8202.  
  8203. Bitfields for Atari Portfolio screen mode:
  8204. Bit(s)    Description    (Table 2634)
  8205.  0    40x8 mode instead of 80x25
  8206.  1    tracked mode
  8207.  7    graphics
  8208. Note:    the above bits are mutually exclusive
  8209. --------N-610F-------------------------------
  8210. INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
  8211.     AH = 0Fh
  8212. Return: CF clear
  8213.     AX = version (AH = major, AL = minor)
  8214.     BX = patch level
  8215. Notes:    patch levels are no longer used starting with version 2.10; instead,
  8216.       the minor version level is incremented.
  8217.     Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not
  8218.       set BX
  8219. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8220. --------b-610F-------------------------------
  8221. INT 61 - Atari Portfolio - GET/SET CURSOR MODE
  8222.     AH = 0Fh
  8223.     AL = function
  8224.         00h get mode
  8225.         01h set mode
  8226.         BL = new cursor mode
  8227.             00h cursor off
  8228.             01h underline
  8229.             02h block
  8230.         02h force mode (set size to reflect NumLock state)
  8231. Return: BL = current/old cursor mode
  8232. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01h
  8233. --------N-6110-------------------------------
  8234. INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
  8235.     AH = 10h
  8236. Return: CF clear if successful
  8237.     CF set on error
  8238.         AX = error code (see #2493 at INT 61"PC/TCP")
  8239. Range:    INT 20 to INT E0, selected by configuration
  8240. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8241. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8242. --------b-6110-------------------------------
  8243. INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
  8244.     AH = 10h
  8245.     AL = function
  8246.         00h get position
  8247.         Return: DH,DL = current row,column
  8248.         01h set position
  8249.         DH = row
  8250.         DL = column
  8251. Desc:    get or specify the upper-left corner of the 40x8 window into the
  8252.       logical screen
  8253. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio"
  8254. SeeAlso: AH=11h"Portfolio"
  8255. --------N-6111-------------------------------
  8256. INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
  8257.     AH = 11h
  8258. Return: CF clear
  8259.     AX = previous state
  8260.         0000h async calls were already disabled
  8261.         else  async calls were enabled
  8262. SeeAlso: INT 61"PC/TCP",INT 61/AH=12h
  8263. --------b-6111-------------------------------
  8264. INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
  8265.     AH = 11h
  8266.     AL = number of lines to move
  8267.     DL = direction of move (1=up, 2=down, 3=left, 4=right)
  8268. SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"
  8269. --------N-6112-------------------------------
  8270. INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
  8271.     AH = 12h
  8272. Return: CF clear
  8273.     AX = previous state
  8274.         0000h async calls were disabled
  8275.         else  async calls were already enabled
  8276. SeeAlso: INT 61"PC/TCP",INT 61/AH=11h
  8277. --------b-6112-------------------------------
  8278. INT 61 - Atari Portfolio - SCREEN REFRESH
  8279.     AH = 12h
  8280. Return: nothing
  8281. Desc:    copy contents of video RAM to LCD controller
  8282. SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"
  8283. --------N-6113-------------------------------
  8284. INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
  8285.     AH = 13h
  8286.     BX = network descriptor (FFFFh for automatic net_getdesc)
  8287.     DX = protocol (see #2635)
  8288.     DS:SI -> buffer for "addr" structure (see #2636)
  8289. Return: CF clear if successful
  8290.         AX = network descriptor used or allocated
  8291.     CF set on error
  8292.         AX = error code (see #2493 at INT 61"PC/TCP")
  8293. Notes:    resets the connection with AH=19h in various cases
  8294.     will wait for protocol on stream connections unless non-blocking was
  8295.       set with AH=20h
  8296. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
  8297. SeeAlso: INT 63/AH=14h"BW-TCP"
  8298.  
  8299. (Table 2635)
  8300. Values for PC/TCP protocol:
  8301.  0001h    raw net (undocumented)
  8302.  0002h    raw IP
  8303.  0003h    datagram (UDP)
  8304.  0004h    stream (TCP)
  8305.  0005h    raw ICMP
  8306.  
  8307. Format of structure "addr":
  8308. Offset    Size    Description    (Table 2636)
  8309.  00h    DWORD    Internet address (network order)
  8310.  04h    WORD    remote socket number (network order)
  8311.  06h    WORD    local socket number (network order) 0000h means "you choose"
  8312.  08h    BYTE    protocol (see #2635)
  8313. --------N-6114-------------------------------
  8314. INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  8315.     AH = 14h
  8316.     BX = network descriptor
  8317. Return: CF set
  8318.         AX = 0018h (see #2493 at INT 61"PC/TCP")
  8319. Notes:    displays error message "Illegal system call!  Please upgrade your
  8320.       PCserver software" to standard output
  8321.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8322. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
  8323. --------N-6115-------------------------------
  8324. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  8325.     AH = 15h
  8326.     ???
  8327. Return: ???
  8328. Notes:    this function is described as "unused" in the v2.2 documentation
  8329.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8330. SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
  8331. --------b-6115-------------------------------
  8332. INT 61 - Atari Portfolio - SOUND GENERATION
  8333.     AH = 15h
  8334.     AL = function
  8335.         00h key click
  8336.         01h beep
  8337.         02h alarm
  8338. Return: nothing
  8339. SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"
  8340. --------N-6116-------------------------------
  8341. INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
  8342.     AH = 16h
  8343.     BX = network descriptor
  8344.     DS:DX -> 9-byte buffer for "addr" structure (see #2636)
  8345. Return: CF clear if successful
  8346.         buffer filled
  8347.     CF set on error
  8348.         AX = error code (see #2493 at INT 61"PC/TCP")
  8349. Range:    INT 20 to INT E0, selected by configuration
  8350. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8351. --------b-6116-------------------------------
  8352. INT 61 - Atari Portfolio - MELODY TONE GENERATOR
  8353.     AH = 16h
  8354.     CX = length of tones in 1/100 sec
  8355.     DL = tone code (see #2637)
  8356. SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio"
  8357.  
  8358. (Table 2637)
  8359. Values for Atari Portfolio tone code:
  8360.  04h    A6#1864.7 Hz
  8361.  05h    B6    1975.5 Hz
  8362.  06h    D7    2348.3 Hz
  8363.  07h    D7#    2489.0 Hz
  8364.  0Eh    F6#    1480.0 Hz
  8365.  25h    C7    2093.0 Hz
  8366.  29h    D6    1174.7 Hz
  8367.  2Ch    G6#    1661.2 Hz
  8368.  2Fh    C7#    2217.5 Hz
  8369.  30h    D5#    622.3 Hz
  8370.  31h    E5    659.3 Hz
  8371.  32h    F5    698.5 Hz
  8372.  33h    F5#    740.0 Hz
  8373.  34h    G5    784.0 Hz
  8374.  35h    G5#    830.6 Hz
  8375.  36h    A5    880.6 Hz
  8376.  37h    A5#    932.3 Hz
  8377.  38h    B5    987.8 Hz
  8378.  39h    C6    1046.5 Hz
  8379.  3Ah    C6#    1108.7 Hz
  8380.  3Bh    D6#    1244.5 Hz
  8381.  3Ch    E6    1318.5 Hz
  8382.  3Dh    F6    1396.9 Hz
  8383.  3Eh    G6    1568.9 Hz
  8384.  3Fh    A6    1760.0 Hz
  8385. --------N-6117-------------------------------
  8386. INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
  8387.     AH = 17h
  8388. Return: CF clear if successful
  8389.     CF set on error
  8390.         AX = error code (see #2493 at INT 61"PC/TCP")
  8391. Notes:    this routine is deprecated in v2.1+ and will eventually be withdrawn;
  8392.       in v2.1+, this function calls AH=01h which should be used instead
  8393.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8394. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  8395. --------b-6117-------------------------------
  8396. INT 61 - Atari Portfolio - DIAL NUMBER
  8397.     AH = 17h
  8398.     DS:SI -> ASCII string containing number to dial
  8399.     CX = length of string
  8400. Note:    valid characters for string are "0123456789ABCD*#"
  8401. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio"
  8402. SeeAlso: AH=18h"Portfolio"
  8403. --------N-6118-------------------------------
  8404. INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
  8405.     AH = 18h
  8406.     BX = network descriptor
  8407. Return: CF clear if successful
  8408.     CF set on error
  8409.         AX = error code (see #2493 at INT 61"PC/TCP")
  8410. Note:    a TCP "FIN" command is sent and no further data may be transmitted,
  8411.       although the connection remains open
  8412. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
  8413. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  8414. --------b-6118-------------------------------
  8415. INT 61 - Atari Portfolio - MUTE STATES
  8416.     AH = 18h
  8417.     AL = function
  8418.         00h get mute state
  8419.         01h set mute state
  8420.         02h get key click state
  8421.         03h set key click state
  8422.         04h get beep state
  8423.         05h set beep state
  8424.         06h get alarm state
  8425.         07h set alarm state
  8426.         08h get DTMF duration
  8427.         09h set DTMF duration
  8428.     DL = new state ("set" functions) (00h off [muted], 01h on)
  8429. Return: DL = current state ("get" functions) (00h off [muted], 01h on)
  8430. SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
  8431. SeeAlso: AH=19h"Portfolio"
  8432. --------N-6119-------------------------------
  8433. INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
  8434.     AH = 19h
  8435.     BX = network descriptor
  8436. Return: CF clear if successful
  8437.     CF set on error
  8438.         AX = error code (see #2493 at INT 61"PC/TCP")
  8439. Desc:    immediately destroys the specified connection
  8440. Note:    send a TCP "RST" command if a stream connection is open
  8441. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
  8442. --------b-6119-------------------------------
  8443. INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
  8444.     AH = 19h
  8445.     DX = serial port number
  8446. Return: AH = status
  8447.         00h successful
  8448.         AL = composite parameters (see #0202 at INT 14/AH=00h)
  8449.         other error
  8450. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"
  8451. --------N-611A-------------------------------
  8452. INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
  8453.     AH = 1Ah
  8454.     BX = network descriptor
  8455.     CX = number of bytes to transmit (0000h allowed)
  8456.     DX = send options (see #2638)
  8457.     DS:SI -> data to be written
  8458. Return: CF clear if successful
  8459.         AX = number of bytes actually written
  8460.         DX = ???
  8461.     CF set on error
  8462.         AX = error code (see #2493 at INT 61"PC/TCP")
  8463. Range:    INT 20h to INT E0h, selected by configuration
  8464. Notes:    the installation check consists of testing for the signature "TCPTSR"
  8465.       three bytes beyond the start of the interrupt handler
  8466. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  8467. SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP"
  8468.  
  8469. Bitfields for PC/TCP send options:
  8470. Bit(s)    Description    (Table 2638)
  8471.  0    signal "URG"ent data
  8472.  3    attempt rerouting on non-stream calls if first attempt fails
  8473.  4    send data with PUSH flag (no override of Nagle) (see option 0Ch)
  8474.  5    fail rather than truncating datagram
  8475.  6    fail rather than blocking
  8476.  7    broadcast packet
  8477. --------b-611A-------------------------------
  8478. INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
  8479.     AH = 1Ah
  8480. Return: AH = peripheral ID byte
  8481.     AL = 00h if no peripheral installed
  8482. Desc:    get the ID code for the current terminating peripheral
  8483. SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"
  8484. --------N-611B-------------------------------
  8485. INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
  8486.     AH = 1Bh
  8487.     BX = network descriptor
  8488.     CX = maximum number of bytes to read
  8489.     DX = receive options (see #2639)
  8490.     DS:SI -> buffer for data
  8491.     ES:DI -> "addr" structure (see #2636) for remote from which to read
  8492.         0000h:0000h for any
  8493. Return: CF clear if successful
  8494.         AX = number of bytes actually read
  8495.         DX = ???
  8496.     CF set on error
  8497.         AX = error code (see #2493 at INT 61"PC/TCP")
  8498. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  8499.  
  8500. Bitfields for PC/TCP receive options:
  8501. Bit(s)    Description    (Table 2639)
  8502.  1    do not remove data from queue, just copy it
  8503.  2    do not copy data, just remove it from queue
  8504.  5    fail if datagram would be truncated
  8505.  6    do not block, return error if no data available
  8506. Note:    special case for UDP: if both 1 and 2 set, return number of datagrams
  8507. --------b-611B-------------------------------
  8508. INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
  8509.     AH = 1Bh
  8510.     AL = which peripheral to set
  8511.         00h serial
  8512.         01h parallel
  8513.     DL = peripheral ID
  8514. Return: nothing
  8515. Desc:    specify that a peripheral is compatible with the BIOS serial or
  8516.       parallel services
  8517. SeeAlso: AH=1Ah"Portfolil",AH=1Ch"Portfolio"
  8518. --------N-611C-------------------------------
  8519. INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
  8520.     AH = 1Ch
  8521.     BX = network descriptor
  8522.     CX = number of bytes to transmit (0000h allowed)
  8523.     DX = send options (see #2638)
  8524.     DS:SI -> data to be written
  8525.     ES:DI -> "addr" structure (see #2636)
  8526. Return: CF clear if successful
  8527.         AX = number of bytes actually written
  8528.         DX = ???
  8529.     CF set on error
  8530.         AX = error code (see #2493 at INT 61"PC/TCP")
  8531. Note:    this function differs from AH=1Ah in that the address and socket
  8532.       numbers can be overridden
  8533. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  8534. SeeAlso: INT 63/AH=21h"BW-TCP"
  8535. --------b-611C-------------------------------
  8536. INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
  8537.     AH = 1Ch
  8538.     AL = function
  8539.         00h preset data values
  8540.         BL = data value
  8541.         DX = I/O address
  8542.         01h get data values
  8543.     BH = table entry number (04h-09h)
  8544. Return: if function 01h
  8545.         BL = data value
  8546.         DX = I/O address
  8547. Desc:    preset peripheral I/O data in a table mapping I/O addresses to data
  8548.       values; function 00h additionally outputs the data value to the
  8549.       I/O port
  8550. SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"
  8551. --------N-611D-------------------------------
  8552. INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
  8553.     AH = 1Dh
  8554.     BX = network descriptor
  8555.     CX = maximum number of bytes to read
  8556.     DX = receive options (see #2638)
  8557.     DS:SI -> buffer for received data
  8558.     ES:DI -> 9-byte buffer containing "addr" structure (see #2636)
  8559. Return: CF clear if successful
  8560.         AX = number of bytes read
  8561.         DX = ???
  8562.     CF set on error
  8563.         AX = error code (see #2493 at INT 61"PC/TCP")
  8564. Notes:    this function can read from any host or a designated host depending
  8565.       on settings in the "addr" structure
  8566.     only for use with datagram or Raw descriptors
  8567. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  8568. --------N-611E-------------------------------
  8569. INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
  8570.     AH = 1Eh
  8571.     BX = network descriptor
  8572. Return: CF clear if successful
  8573.     CF set on error
  8574.         AX = error code (see #2493 at INT 61"PC/TCP")
  8575. Range:    INT 20 to INT E0, selected by configuration
  8576. Notes:    bufferred data is transmitted immediately, overriding Nagle's algorithm
  8577.       if necessary
  8578.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8579. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8580. --------b-611E-------------------------------
  8581. INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
  8582.     AH = 1Eh
  8583.     AL = function
  8584.         00h get speed
  8585.         01h set speed
  8586.         BX = clock tick speed
  8587.             0000h tick every 128 seconds
  8588.             0001h tick every second
  8589. Return: if function 00h
  8590.         BX = clock tick speed
  8591. Note:    the faster tick speed also uses more power
  8592. SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"
  8593. --------N-611F-------------------------------
  8594. INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
  8595.     AH = 1Fh
  8596.     BX = network descriptor
  8597.     CX = event type (see #2640)
  8598.     DS:SI -> event handler routine (see #2641)
  8599.     ES:DI = 32-bit hint passed to handler
  8600. Return: CF clear if successful
  8601.         DS:DX -> previous handler
  8602.     CF set on error
  8603.         AX = error code (see #2493 at INT 61"PC/TCP")
  8604. Note:    ICMP messages do not trigger events on stream connections
  8605. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8606.  
  8607. (Table 2640)
  8608. Values for PC/TCP event type:
  8609.  00h    alarm
  8610.  01h    open (successfully opened stream connection)
  8611.  02h    receive (data available)
  8612.  03h    transmit (ACK received on stream connection)
  8613.  04h    transmit flush???
  8614.  05h    foreign close (remote host closed data connection)
  8615.  06h    close (local host closed connection and protocol is complete)
  8616.  07h    error (error code passed to handler as arg)
  8617.  
  8618. (Table 2641)
  8619. Values PC/TCP user event handler is called with:
  8620.     BX = network descriptor
  8621.     CX = event type (see #2640)
  8622.     DS:DX -> arg
  8623.     ES:DI = 32-bit hint value
  8624.     STACK:    small stack, possibly the DOS stack
  8625. --------b-611F-------------------------------
  8626. INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
  8627.     AH = 1Fh
  8628.     AL = function
  8629.         00h get state
  8630.         01h set state
  8631.         DH = new refresh-on-NMI state
  8632.             (00h disabled, 01h enabled, bit 7 set = don't change)
  8633.         DL = new refresh-on-key state
  8634. Return: DH,DL = current/old states
  8635. SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"
  8636. --------N-6120-------------------------------
  8637. INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
  8638.     AH = 20h
  8639.     BX = network descriptor
  8640.     CX = length of buffer (usually 04h)
  8641.     DS:DX -> buffer containing option
  8642.     SI = (ignored by v2.2-)
  8643.     DI = option to set (see #2642)
  8644. Return: CF clear if successful
  8645.     CF set on error
  8646.         AX = error code (see #2493 at INT 61"PC/TCP")
  8647. Note:    Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all
  8648.       others return CF clear
  8649. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  8650.  
  8651. (Table 2642)
  8652. Values for PC/TCP option to get or set:
  8653.  01h    set non-blocking mode if non-zero
  8654.  02h    timeout of call in milliseconds
  8655.  03h    user-defined 4-byte magic cookie (not used by kernel)
  8656.  04h    TCP window or UDP buffer count (WORD, unsigned)
  8657.  06h    do TCP keep-alives if non-zero
  8658.  09h    (v2.1+) set IP precedence
  8659.  0Ah    (v2.1+) set IP type of service
  8660.  0Bh    use a privileged port if port = 0
  8661.  0Ch    turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
  8662. Note:    use "C" true or false values for boolean options
  8663. --------b-6120-------------------------------
  8664. INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
  8665.     AH = 20h
  8666.     AL = function
  8667.         00h get INT 09 revectoring state
  8668.         01h set state
  8669.         DL = new state (00h disable, 01h enable)
  8670. Return: if function 00h
  8671.         DL = new state (00h disabled, 01h enabled)
  8672. Desc:    specify whether INT 09 is automatically revectored to the BIOS,
  8673.       preventing applications from using their own INT 09 handler on the
  8674.       incompatible keyboard hardware
  8675. SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"
  8676. --------N-6121-------------------------------
  8677. INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
  8678.     AH = 21h
  8679.     BX = network descriptor
  8680.     CX = length of buffer
  8681.     DS:DX -> buffer for return values
  8682.     SI = 0004h (ignored by v2.2-)
  8683.     DI = option (see #2642)
  8684. Return: CF clear if successful
  8685.         DS:DX -> value (usually 32 bits) returned by selected option
  8686.     CF set on error
  8687.         AX = error code (see #2493 at INT 61"PC/TCP")
  8688. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8689. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  8690. --------N-6122-------------------------------
  8691. INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
  8692.     AH = 22h
  8693. Return: CF clear if successful
  8694.         AX = network descriptor
  8695.     CF set on error
  8696.         AX = error code (see #2493 at INT 61"PC/TCP")
  8697. Note:    the descriptor will be an integer in the range 00h-1Fh, and a DOS call
  8698.       is made to allocate this as a file descriptor.  Hence a number may
  8699.       not refer to a PC/TCP network descriptor and a DOS file handle
  8700.       simultaneously.
  8701. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
  8702. --------N-6123-------------------------------
  8703. INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
  8704.     AH = 23h
  8705.     BX = network descriptor or FFFFh to allocate descriptor
  8706.     DX = type of service
  8707.     DS:SI -> "addr" structure (see #2636)
  8708. Return: CF clear if successful
  8709.         AX = network descriptor
  8710.     CF set on error
  8711.         AX = error code (see #2493 at INT 61"PC/TCP")
  8712. Notes:    type of service and "addr" structure are as for AH=13h
  8713.     any of the address structure can be zero; normally local socket number
  8714.       is filled in prior to call
  8715. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  8716. SeeAlso: INT 63/AH=12h"BW-TCP"
  8717. --------N-6124-------------------------------
  8718. INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
  8719.     AH = 24h
  8720. Return: always successful
  8721. Note:    performs "net_abort" (AH=19h) on all open non-global descriptors
  8722. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
  8723. --------b-6124-------------------------------
  8724. INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
  8725.     AH = 24h
  8726.     AL = function
  8727.         00h get state
  8728.         01h set state
  8729.         DL = new ROM state (see #2643)
  8730.         DH = new CCM state (see #2644)
  8731. Return:    CF clear if successful
  8732.         DL = current/old ROM state
  8733.         DH = current/old CCM state
  8734.     CF set on error (invalid option or other error)
  8735. Desc:    control whether memory cards or an extension ROM are visible in the
  8736.       range 000C0000h to 000DFFFFh
  8737. SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio"
  8738.  
  8739. (Table 2643)
  8740. Values for Atari Portfolio ROM space state:
  8741.  00h    normal application ROM
  8742.  01h    CCM drive A:
  8743.  02h    CCM drive B:
  8744.  03h    expansion ROM
  8745. SeeAlso: #2644
  8746.  
  8747. (Table 2644)
  8748. Values for Atari Portfolio CCM space state:
  8749.  00h    CCM drives disabled
  8750.  01h    CCM drive A: permanently enabled
  8751.  02h    CCM drive B: permanently enabled
  8752. SeeAlso: #2643
  8753. --------N-6125-------------------------------
  8754. INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
  8755.     AH = 25h
  8756.     DX,BX = IP address in network order
  8757.     CX = length of buffer for name
  8758.     DS:SI -> buffer for host name
  8759. Return: CF clear if successful
  8760.        buffer filled with ASCIZ host name
  8761.     CF set on error
  8762.         AX = error code (see #2493 at INT 61"PC/TCP")
  8763. Note:    this function will use the host table and or DNS to resolve the
  8764.       address, depending on kernel configuration.  Use this call for the
  8765.       normal gethostbyaddr function.
  8766. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
  8767. --------N-6126-------------------------------
  8768. INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
  8769.     AH = 26h
  8770.     DX,BX = IP address in network order
  8771.     CX = length of buffer
  8772.     DS:SI -> buffer for host name
  8773. Return: CF clear if successful
  8774.         buffer filled with ASCIZ host name
  8775.     CF set on error
  8776.         AX = error code (see #2493 at INT 61"PC/TCP")
  8777. Notes:    normally one would use AH=25h instead of this function
  8778.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8779. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
  8780. --------b-6126-------------------------------
  8781. INT 61 - Atari Portfolio - GET/SET POWER CONTROL
  8782.     AH = 26h
  8783.     AL = function
  8784.         00h get state
  8785.         01h set state
  8786.         DL = new state
  8787.             00h normal power-down on low battery
  8788.             01h no power-down, but display warning
  8789.             02h no power-down, no warning on low battery
  8790. Return: AL = current/old state
  8791. SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"
  8792. --------N-6127-------------------------------
  8793. INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
  8794.     AH = 27h
  8795.     DX,BX = IP address in network order
  8796.     CX = length of buffer
  8797.     DS:SI -> buffer for host name
  8798. Return: CF clear if successful
  8799.         buffer filled with ASCIZ host name
  8800.     CF set on error
  8801.         AX = error code (see #2493 at INT 61"PC/TCP")
  8802. Note:    normally one would use AH=25h instead of this function
  8803. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
  8804. --------N-6128-------------------------------
  8805. INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
  8806.     AH = 28h
  8807.     BX = network descriptor 1
  8808.     CX = network descriptor 2
  8809. Return: CF clear if successful
  8810.     CF set on error
  8811.         AX = error code (see #2493 at INT 61"PC/TCP")
  8812. Note:    the two descriptors will exchange places; both must be local or both
  8813.       global
  8814. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8815. --------b-6128-------------------------------
  8816. INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
  8817.     AH = 28h
  8818.     AL = function
  8819.         00h get languages
  8820.         01h set languages
  8821.         DH = new text language (set bit 7 to leave unchanged)
  8822.         DL = new keyboard language (set bit 7 to leave unchanged)
  8823.         03h get language table pointers
  8824. Return: if function 00h or 01h:
  8825.         DH = current/old text language
  8826.         DL = current/old keyboard language
  8827.     if function 03h
  8828.         ES:CX -> keyboard table (see #2645)
  8829.         ES:DX -> language table (see #2645)
  8830. SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio"
  8831.  
  8832. Format of Atari Portfolio language table:
  8833. Offset    Size    Description    (Table 2645)
  8834.  00h    BYTE    number of languages supported
  8835.  01h  N BYTEs    supported languages
  8836.         00h English
  8837.         01h French
  8838.         02h German
  8839.         03h Spanish
  8840.         04h Italian
  8841.         05h Swedish
  8842.         06h Danish
  8843. --------N-6129-------------------------------
  8844. INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
  8845.     AH = 29h
  8846. Return: CF clear if successful
  8847.         AX = network descriptor
  8848.     CF set on error
  8849.         AX = error code (see #2493 at INT 61"PC/TCP")
  8850. Note:    use this function rather than AH=22h to avoid a DOS call by the PC/TCP
  8851.       kernel; the returned descriptor will be >= 40h and cannot be used
  8852.       with "net_select" (AH=0Eh)
  8853. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
  8854. SeeAlso: INT 61/AH=22h
  8855. --------N-612A-------------------------------
  8856. INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
  8857.     AH = 2Ah
  8858.     DS:SI -> 26-byte buffer for configuration information (see #2646)
  8859. Return: CF clear
  8860.     AX = 0000h
  8861.     buffer filled
  8862. Notes:    size of buffer may vary with kernel version; 26 bytes is the size for
  8863.       versions 2.05 through 2.2
  8864.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8865. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8866.  
  8867. Format of PC/TCP configuration information:
  8868. Offset    Size    Description    (Table 2646)
  8869.  00h    BYTE    maximum TCP connections available
  8870.  01h    BYTE    maximum UDP connections available
  8871.  02h    BYTE    maximum IP connections available
  8872.  03h    BYTE    maximum Raw Net connections available
  8873.  04h    BYTE    number of TCP connections currently in use
  8874.  05h    BYTE    number of UDP connections currently in use
  8875.  06h    BYTE    number of IP connections currently in use
  8876.  07h    BYTE    number of Raw Net connections currently in use
  8877.  08h    WORD    number of local network descriptors active
  8878.  0Ah    WORD    number of global network descriptors active
  8879.  0Ch    BYTE    maximum header size on network
  8880.  0Dh    BYTE    maximum trailer size on network
  8881.  0Eh    WORD    size of large packet buffer
  8882.  10h    WORD    number of network interfaces attached
  8883.  12h    DWORD    milliseconds since kernel started
  8884.  16h    DWORD    IP broadcast address
  8885. --------N-612B-------------------------------
  8886. INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
  8887.     AH = 2Bh
  8888.     BX = network descriptor
  8889.     CX,DX = time before alarm in milliseconds
  8890.     DS:SI -> handler which will receive call (see #2641 at INT 61/AH=1Fh)
  8891.     ES:DI = 32-bit cookie passed to handler
  8892. Return: CF clear if successful
  8893.     CF set on error
  8894.         AX = error code (see #2493 at INT 61"PC/TCP")
  8895. Notes:    this function will cause a NET_AS_ALARM to be generated; it is intended
  8896.       for TSRs, etc. to regain control periodically
  8897.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8898. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8899. --------b-612C-------------------------------
  8900. INT 61 - Atari Portfolio - GET VERSION
  8901.     AH = 2Ch
  8902. Return: DS:BX -> BIOS version string ('$'-terminated)
  8903. SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
  8904. --------b-612D-------------------------------
  8905. INT 61 - Atari Portfolio - TURN SYSTEM OFF
  8906.     AH = 2Dh
  8907. Return: nothing
  8908. SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"
  8909. --------b-612E-------------------------------
  8910. INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
  8911.     AH = 2Eh
  8912.     AL = new state
  8913.         00h disabled
  8914.         01h enabled
  8915.         DH,DL = row,column at which to display
  8916. Return: nothing
  8917. SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"
  8918. --------N-6130-------------------------------
  8919. INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
  8920.     AH = 30h
  8921.     BX,DX = IP address of host
  8922.     CX = length of data to send
  8923. Return: CF clear if successful (i.e. reply received)
  8924.     CF set on error
  8925.         AX = error code (see #2493 at INT 61"PC/TCP")
  8926. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8927. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  8928. --------b-6130-------------------------------
  8929. INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
  8930.     AH = 30h
  8931.     AL = function
  8932.         00h transmit block
  8933.         CX = number of bytes to send
  8934.         01h receive block
  8935.         CX = buffer size
  8936.         02h open ports
  8937.         03h close ports
  8938.         04h wait 500ms
  8939.     DS:DX -> start of data buffer
  8940. Return:    DL = status
  8941.         00h successful
  8942.         01h buffer too small
  8943.         02h transmission timeout
  8944.         03h checksum failure
  8945.         04h invalid subfunction
  8946.         05h peripheral not installed
  8947.     if function 01h:
  8948.         CX = number of bytes received
  8949. SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"
  8950. --------N-61---------------------------------
  8951. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  8952.     AH = function
  8953.         31h "net_add_route"
  8954.         32h "net_del_route"
  8955.         33h "net_dump_routes"
  8956. Notes:    these functions are described as "unused" in the v2.2 documentation
  8957.     router configuration can be altered using INT 61/AH=01h
  8958.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8959. --------N-6132-------------------------------
  8960. INT 61 U - PC/TCP kernel v2.3 - GET ???
  8961.     AH = 32h
  8962. Return: AX = ???
  8963. Note:    this function is fully re-entrant, and may be called even when another
  8964.       PC/TCP kernel call is already in progress
  8965. --------N-6134-------------------------------
  8966. INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
  8967.     AH = 34h
  8968.     ???
  8969. Return: ???
  8970. Notes:    this function is described as "reserved" in the v2.2 documentation
  8971.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  8972. --------N-6150-------------------------------
  8973. INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
  8974.     AH = 50h
  8975.     DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
  8976. Return: CF clear if successful
  8977.         DX:AX -> IP address
  8978.     CF set on error
  8979.         AX = error code (see #2493 at INT 61"PC/TCP")
  8980. Range:    INT 20 to INT E0, selected by configuration
  8981. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  8982. --------N-6151-------------------------------
  8983. INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
  8984.     AH = 51h
  8985.     CX = size of destination buffer
  8986.     DS:DX -> ASCIZ host name (max 127 chars)
  8987.     ES:DI -> destination buffer or 0000h:0000h
  8988. Return: CF clear if successful
  8989.         DX:AX -> IP address of host
  8990.         destination buffer filled with canonical host name
  8991.     CF set on error
  8992.         AX = error code (see #2493 at INT 61"PC/TCP")
  8993. Note:    this function calls DOS, and can fail if the DOS call fails
  8994. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  8995. --------N-6152-------------------------------
  8996. INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
  8997.     AH = 52h
  8998.     CX = size of destination buffer
  8999.     DS:DX -> ASCIZ host name (max 127 chars)
  9000.     ES:DI -> destination buffer or 0000h:0000h
  9001. Return: CF clear if successful
  9002.         DX:AX -> IP address of host
  9003.         destination buffer filled with canonical host name
  9004.     CF set on error
  9005.         AX = error code (see #2493 at INT 61"PC/TCP")
  9006. Note:    this function will poll all configured domain name servers if necessary
  9007. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  9008. --------N-6153-------------------------------
  9009. INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
  9010.     AH = 53h
  9011.     DS:DX -> ASCIZ name to be resolved (max 127 chars)
  9012. Return: CF clear if successful
  9013.         DX:AX -> IP address of host
  9014.     CF set on error
  9015.         AX = error code (see #2493 at INT 61"PC/TCP")
  9016. Range:    INT 20 to INT E0, selected by configuration
  9017. Note:    this function is not supported by v2.10+
  9018. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  9019. --------N-6154-------------------------------
  9020. INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
  9021.     AH = 54h
  9022.     CX = size of destination buffer
  9023.     DS:DX -> ASCIZ host name (max 127 chars)
  9024.     ES:DI -> destination buffer or 0000h:0000h
  9025. Return: CF clear if successful
  9026.         DX:AX -> IP address of host
  9027.         destination buffer filled with canonical host name
  9028.     CF set on error
  9029.         AX = error code (see #2493 at INT 61"PC/TCP")
  9030. Note:    this function uses all configured methods in turn to resolve the
  9031.       name (numerical, then host table, then DNS, then IEN116)
  9032. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  9033.       greater than 54h in AH may crash the system.    Other kernels may have
  9034.       this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
  9035. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
  9036. SeeAlso: INT 61/AH=52h,INT 61/AH=53h
  9037. --------N-6155-------------------------------
  9038. INT 61 U - PC/TCP kernel v2.3 - ???
  9039.     AH = 55h
  9040.     ???
  9041. Return: ???
  9042. SeeAlso: INT 61"PC/TCP"
  9043. --------N-6156-------------------------------
  9044. INT 61 U - PC/TCP kernel v2.3 - ???
  9045.     AH = 56h
  9046.     ???
  9047. Return: ???
  9048. SeeAlso: INT 61"PC/TCP"
  9049. --------N-6157-------------------------------
  9050. INT 61 U - PC/TCP kernel v2.3 - ???
  9051.     AH = 57h
  9052.     ???
  9053. Return: ???
  9054. SeeAlso: INT 61"PC/TCP"
  9055. --------N-6158-------------------------------
  9056. INT 61 U - PC/TCP kernel v2.3 - ???
  9057.     AH = 58h
  9058.     ???
  9059. Return: ???
  9060. SeeAlso: INT 61"PC/TCP"
  9061. --------N-6159-------------------------------
  9062. INT 61 U - PC/TCP kernel v2.3 - ???
  9063.     AH = 59h
  9064.     ???
  9065. Return: ???
  9066. SeeAlso: INT 61"PC/TCP"
  9067. --------N-615A-------------------------------
  9068. INT 61 U - PC/TCP kernel v2.3 - ???
  9069.     AH = 5Ah
  9070.     ???
  9071. Return: ???
  9072. SeeAlso: INT 61"PC/TCP"
  9073. --------N-615B-------------------------------
  9074. INT 61 U - PC/TCP kernel v2.3 - ???
  9075.     AH = 5Bh
  9076.     ???
  9077. Return: ???
  9078. SeeAlso: INT 61"PC/TCP"
  9079. --------N-615C-------------------------------
  9080. INT 61 U - PC/TCP kernel v2.3 - ???
  9081.     AH = 5Ch
  9082.     ???
  9083. Return: ???
  9084. SeeAlso: INT 61"PC/TCP"
  9085. --------N-615D-------------------------------
  9086. INT 61 U - PC/TCP kernel v2.3 - ???
  9087.     AH = 5Dh
  9088.     ???
  9089. Return: ???
  9090. SeeAlso: INT 61"PC/TCP"
  9091. --------N-615E-------------------------------
  9092. INT 61 U - PC/TCP kernel v2.3 - ???
  9093.     AH = 5Eh
  9094.     ???
  9095. Return: ???
  9096. SeeAlso: INT 61"PC/TCP"
  9097. --------N-615F-------------------------------
  9098. INT 61 U - PC/TCP kernel v2.3 - ???
  9099.     AH = 5Fh
  9100.     ???
  9101. Return: ???
  9102. SeeAlso: INT 61"PC/TCP"
  9103. --------!---Section--------------------------
  9104.